Sheffield Apprenticeships - How to develop an app for Android and iOS with React Native
The Sheffield Apprenticeships app is the quickest way to find apprenticeship vacancies in Sheffield. You scroll through a list, click on a vacancy and then if you’re still interested, go directly to the Gov.uk Find An Apprenticeship website and apply. The app does exactly what Apple recommend in their app developer guidelines and solves a problem; young people can see at a glance the apprenticeship opportunities in Sheffield.
Why did we build the Sheffield Apprenticeships app with React Native and what lessons did we learn on the way?
- Apps built with React Native look like native apps - that means the user interface elements & components (menus, lists, buttons etc) are the standard components you see when you use any modern mobile app, on either Android or iOS.
- Right now React Native is super popular with mobile developers. There are plenty of examples, tutorials and documentation on the web. It’s also well supported. React Native is backed by Facebook (they use it to develop their own apps) and it feels like a technology that’s going to be around for a while. React Native is worth investing time in.
- Install Xcode if you use a Mac and don’t worry about Android Studio until a bit later. Yes React Native means one lot of coding, but if you want to see your nascent app running on both platforms, you need to install both Android Studio and Xcode. We didn’t worry about Android at first - we just assumed that it would be relatively easy to install Android Studio later and then get the app running on an Android emulator and then on an actual Android phone (and it was).
- Make the app - even a small app - look as polished as possible. The Twitter app is a good starting point for basic lessons in app design. A simple standard scrollable list is the first screen you see when you open the app. The navigation should be intuitive - it works in a way that is consistent with other apps.
- Aim to release a minimum viable product. This was a spare time project so we wanted a first version that was quick to build, quick to test (not too many obscure bugs) and easy to get through both the Android Google Play and Apple iOS App Store approval processes. There are ideas for a future version - search by category is one - but they can wait until we’ve got some feedback from real users.
- Install Android Studio and start to test/run the app on one or two Android phones (old ones are good). You write one lot of code when you create an app with React Native - that’s 99% true - but there were one or two things in the app that worked on iOS but then needed an extra tweak for Android. It’s annoying that the nice scrollable webview works in iOS when embedded in a scrollview, but doesn’t work in Android.
- Building the app (not coding) prior to release in Android Studio (or Xcode for iOS) is the hardest bit of the job. There are helpful blog posts that take you step-by-step through the different settings you need to apply. The hardest bit - the only time we got stuck - was around code signing in iOS. The final build of the app at the end seemed harder than installing and configuring the dev tools at the start.
The Sheffield Apprenticeships app is free and it’s got a very obvious target audience (young people in Sheffield who are looking for alternatives to university). But still, app stores feel like graveyards. The real work begins when you start to promote your app.