«As a company, the shared programming logic between our native and web apps has bettered our internal resource management allowing us to redistribute our programmers between the native and web app easily and with little to no delay.»
Web app development has quickly became of the most important aspects of our field of work especially because of its ability to reach across various platforms and be accessible to a wider client base that any one platform. With the improvements to HTML5 and CSS web development offers a wide variety of quick and visually pleasing solutions to many large companies who wish to bring their product to a mainstream user status. It’s no wonder that these companies will often start with a web app, and begin to port their app to native devices as demand grows, only to find the difficulties of maintaining a multi-platform application a bit daunting.
From the perspective of a long time native programmer, the process of developing and programing a web app as opposed to native (i.e. Windows, iOS) can be very different. Usually, most web programmers pay little attention to such features such as delegation, inheritance, KVC/KVO, singleton, etc. and although the end product is acceptable, it lacks some of the more robust functions and features that native apps tend to sport. We at MIOLabs have tried many frameworks; mostly the big ones from the big companies. In developing our web manager for our clients we have experimented with frameworks like Angular and React, but in the end we always came to the same conclusion: they are frameworks made from the point of view of a web developer. We are a company of manly native developers and we found that the cost of time and resources necessary to maintain and train two development teams (iOS and web) to be inefficient and at times problematic.
After programing in many different environments for desktop and mobile platforms (Windows, macOS, Linux, iOS, Android, etc.) and microcontrollers (custom manufacturer libs, RTOS, etc.) we found Cocoa to be efficient and powerful allowing us to do much more with less resources. It’s not about the Cocoa API; it’s how to you use it. Views, view controllers, notification centers, Delegation, KVC/KVO, gestures, how a Fetch Results Controller works, and so on, are the things that make us more productive, it’s about much more than just what you’re app looks like, or how the API can be supported. That’s what we love about Cocoa / Cocoa touch.
Since implementing the MIOJSLibs framework into our web app projects we have reduced development time as well as over-head costs. As a company, the shared programming logic between our native and web apps has bettered our internal resource management allowing us to redistribute our programmers between the native and web app easily and with little to no delay.
The bottom line is this: Even though the syntax between TypeScript and Swift are too different to make code sharing impossible, the programing knowledge and API are almost identical making the open source MIOJSLibs our solution to a faster more resource efficient company, and has proven to be very effective in getting the results desired.
Now it’s possible develop a web app using API you are familiar with like Foundation, UIKit and CoreData and the same logic and structure as an iOS app.
MIOLabs in GitHub: github.com/miolabs/MIOJSLibs