There’s An App for That

Should I build an app?

Grant Hair
4 min readDec 22, 2017

This is a difficult question to answer, and one many people ask before venturing down the path of app creation.

You need to ask yourself, what problem is my app solving in peoples’ day to day lives?

if (answer == "I dunno")
return "You probably don't need an app";
if (answer == "Problems x , y and z")
return "Brilliant, build an app";

(Horrendous, I know, just roll with it guys)

If you have identified a problem/s that your app will solve then brilliant. The next question is, how do I start this thing?

Well you must look at your current skill set.

Do you enjoy c#? Great you can build cross platform apps using Xamarin. Xamarin is the technology that huge apps such as Slack and Pinterest use to deliver their services to millions of daily users.

https://www.pluralsight.com/paths/csharp

Do you enjoy JavaScript? You can build cross-platform apps using React Native or any of the numerous frameworks in the wilderness of JavaScript development. React Native is a solid choice used to create behemoths like Facebook and Instagram.

https://www.raywenderlich.com/165140/react-native-tutorial-building-ios-android-apps-javascript

Do you enjoy Java? Excellent fire up Android Studio and start coding. If you’re feeling adventurous then you could even try Kotlin for Android development just beware you could be cutting out half of your Apple-loving user base.

https://www.toptal.com/android/kotlin-boost-android-development

Are you a huge Apple fan boy/girl? Build an app using Objective C or Swift and again get ready to cut out half of your user base by developing for iOS.

https://www.ukfast.co.uk/blog/2014/06/04/a-swift-change-to-apples-language/

A lot of people have the perception that there’s only one way to skin the mobile app cat, but in reality there are countless ways to create the next Snapchat or Yik Yak edit(terrible example just a fun name) then you can use your already existing skill base.

If you are just starting out and don’t really specialise in one area yet then even better, you can sample all of the different methods of creation and choose what fits best for you. The same could be said for a 25 year battle hardened c# developer there’s nothing stopping them picking up Swift and creating an iOS app.

http://knowyourmeme.com/memes/press-f-to-pay-respects

I chose Xamarin as my comrade for the journey to app creation as you can write one piece of code and share it across 3 (2 ½ — Windows Phone is kind of dying and needs revived, press F to pay respects ) platforms, you can currently share approximately 90% of your code base.

https://www.onlinebooksreview.com/articles/best-xamarin-books

I was taken aback at how simple it was to create a basic game using Xamarin. If you are familiar with HTML then the XAML (Extensible Application Markup Language) that is used on the ‘Frontend’ will be a joy to work with.

XAML used to Create a Button

You can use NuGet packages and features that we all know and love such as Newtonsoft.Json, Linq queries etc.

List Time!

Pros of Xamarin:

  • One Language for All Platforms — The main issue once you have built an Android app is, OK, now I have to redo it for iOS.
  • Performance That is Close to Native
  • Native User Experiences — Xamarin allows you to build using platform-specific UI elements, using the Xamarin.Forms tool which converts app UI components into the platform-specific interface elements at runtime.
  • Full Hardware Support — your solution gets native-level app functionality, you can also link in with native libraries.
  • Maintenance simplified — one code base means one set of bugs.
  • Complete Development Ecosystem — Xamarin now ships with everything that you need — Xamarin.Insights for analytics, Xamarin Test Cloud, Xamarin. Whatever you can think of really.
  • Use your MSDN subscription and get free access to Xamarin University.

Cons of Xamarin:

  • Delayed support for the Latest Platform Updates — relies on the Xamarin development team. Although Xamarin claims to provide same-day support.
  • Limited Access to Open Source Libraries — Native development uses of open source technologies. With Xamarin, you have to use only the components provided by the platform and some .Net open source resources.
  • Larger App Size — Depending on how complex they are, Xamarin apps are typically larger than native ones (the latter might be half the size of a Xamarin app).

With both pros and cons weighed up I would 100% recommend giving Xamarin a bash.

Here is a list of handy tutorials to get you started.

https://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/ For Cross Platform Development

https://developer.xamarin.com/guides/android/getting_started/hello,android/For Android Development

https://www.youtube.com/watch?v=gm-RgfdaISU
https://www.youtube.com/watch?v=DJYLrVNY2ak

Happy Coding!

--

--