About a year ago, we started work on porting our existing libraries of about 15+ years of code for handling patent-data, to objective-c. The goal was (and still is) to bring together the various tools and utilities to a cocoa-based one-stop-shop for handling all our needs. Whether it's research, retrieving and aggregating data or updating a client's database. About 70% of the functionality is handled by our backend-webservices, so this tool, for the bigger part, is essentially a fancy frontend.
After the first batch of libraries was finished, I decided to start another project. We'll come back to this in just a few seconds.
Krikkit is our flagship. It is a web-application for dealing with (curated) patent-data. It's using all the modern shebang a browser offers and is a really great product. It's fast and feels like a proper desktop-application. But it's optimized to be used on a PC. You can use it on a tablet or a phone, everything works and it even looks quite nice, but it feels wrong.
So, work began on Krikkit for iOS. It's not so much a companion-app, but a new product. The idea was to leverage all the tools and code I had on my hands and my own experience of nearly 20 years, and cram it in an app that does one thing: Finding and retrieving patent-information. To be fair, until recently, I never planned on releasing it. It was more of a way to get back into programming (which I hadn't done in quite a good time). But after using my own app on a day-to-day basis, I realized something: The app feels totally different than all the tools I knew. Be it Depatisnet, or Espacenet or even our own, big, Krikkit.
And that's where I decided to let go of our mobile web-applications. Let me explain:
Web-apps are great. They make it easy for people to do something. No installation, no messing around and, in theory, they should run everywhere. If done right, there really isn't much of a difference to a "real application". All of this is true, but when you leave the comfort of a big-screen, a mouse/touchpad, a nice chair und A/C, this all changes. No matter how hard you try, no matter what techniques you are using, as soon as you are on a mobile device and run a web-application, it always feels wrong. It is slow, it is unresponsive, it is getting on your nerves. That's not because the web-app on your phone or tablet runs slower than on a desktop, it is because people got used to getting instant feedback. When they touch something, they need a reaction right away. They know how to swipe and how to pinch and zoom. If they touch the screen and start swiping and there is even the slightest of lag, the application becomes unsexy.
There are dozens of other good reasons to go native. And with native I mean native. Not some cross-platform-shit. And there is exactly one reason, not to go native: Laziness.
If you want to make a great app, you have to do it the hard way.
Do one thing, but do it great.