• What We Do
  • Work Examples
  • Information
  • Smart Solutions for Smarter Business

    Choosing a Tool for iOS Development Back to blog

    As Tiger Sheep begins to expand our repertoire of services, I’ve spent a majority of my time these last few weeks researching and getting familiar with different ways to develop apps for iOS. Our company primarily works in JavaScript, so we wanted to see if there was a way to create native iOS apps using JavaScript. I also bring some Swift knowledge to the table, so we were able to compare these JavaScript apps with an app written in native Swift. Here is what I found:


    Writing natively in Swift

    As far as the development process goes, I love writing apps in Swift. The language is really verbose and the compiler in Xcode is really great for catching mistakes and bugs before you run the app. It’s also nice to occasionally step out of the code and design views in the interface builder, which gives a visual representation of what your app will look like before it is built. Swift is also designed hand-in-hand with iOS, so you can take advantage of the libraries that come with pre-built UI components that give that classic iOS feel.

     While Swift brings some great things, building and managing an app built in Swift would mean having a code base that is distinctly separate from its parent web app, effectively doubling the work that goes into creating a web app with an iOS companion. In addition to that, Swift code cannot easily be ported to Android, so developing a cross platform app would further require yet another code base and another language to manage. In terms of functionality, Swift produced excellent results, but not without some management drawbacks.

    Web Apps with PhoneGap

    Writing an app with PhoneGap was quite a different experience. It was really awesome that the app was built remotely—it uses a local server to connect to your phone and can display the development results without wires. It also is written in straight HTML, CSS, and JavaScript, so there was barely a learning curve when coming from web development.

    But trying to get it to feel like a real app was difficult. The resulting to-do list very much felt like a Safari port rather than a full application. You can call native elements such as alerts, but some functions such as Table Views, would have to be built separately and from scratch in HTML. The end experience felt cheap and clunky, particularly when compared next to the native app.

    Using React Native

    React Native seemed to find a nice balance between the previous two methods. It’s written in React (a popular JavaScript library) and has some prebuilt UI interfaces that result in a very iOS-like app. It’s also great for cross platform development, as you can also build Android versions of your app using React and similar UI components. You still manage separate code bases, but get the advantage of writing both in React.

    It didn’t come without its challenges, however. React Native is still pretty new and debugging the app was pretty horrendous; the documentation is pretty confusing and the examples provided can be difficult to understand. Errors are displayed in a few places: you use Xcode every time you need to build the app, but the console lives in a browser instance, and you also get warnings and failure messages on the simulator.

    Overall, I really preferred the results that came from the native Swift app, but not everyone has the time to learn Swift and get familiar with the Apple development environment. PhoneGap was simple and could be good for small, simple extension apps while React Native grows more promising as the documentation matures and the community behind it grows.

    Ike Mattice
    Web Designer

    Ike Mattice
    Web Designer

    Check out our blog and social media for news and a glimpse into how we do business!


    Contact us today to schedule a demo and see some of opportunities Tiger Sheep can open up to you!


    Give our staff a call, and see what a custom solution from Tiger Sheep can do for your business!