Becoming A Developer (Part 2)

The world of Mobile Development

In the last session we took a general layman’s overview of what it means to become a software developer in most sense of the word, this time we are focusing on mobile development and its kinks.

If you are interested in reviewing the last post, here it is….

So lets get to work.

Introduction

More often than not, we’ve heard the term mobile developer, and I’m pretty sure we all know what a mobile developer is, In essence a mobile developer is a developer that develops apps for the mobile platforms ( android, IOS, Blackberry-if that’s still an OS, Windows Mobile etc.). In more professional terms.

Mobile Developers are responsible for creating software(apps) that work on mobile devices

mobile developers work on making mobile devices more important to our daily operations and use cases. So it could be said that mobile developers are core to the world of software development we have to day.

The Makeup of the Mobile Developer

The mobile developer today has a lot to work with and he’s part of an ever expanding circle in terms of tools and skills. So what does make up a mobile developer.

With the broad range of mobile devices to take into consideration. the position of the mobile developer can be consider quite unbalanced, but the technologies have evolved to take these into consideration.

With this in mind there are different types of mobile developers and they can be classified in different ways but we are gonna look at this based on structure and flow.

Mobile Development can basically be broken down into three forms.

  • Native apps
  • HTML5 apps.
  • Hybrid apps.

Mobile apps developed based on a single OS, lets say Android or just IOS, are considered native.

A native application (native app) is an application program that has been developed for use on a particular platform or device.

Traditionally a developer that developers natively on a platform can be said to be a developer of that platform. As that, there are developers that can be said to be android developers, IOS developers and many more.

Today web developers have the privilege to be called mobile developers (a perk that comes with the ability to develop hybrid/native apps using javascript.

HTML5 apps use standard web technologies—typically HTML5, JavaScript and CSS. This write-once-run-anywhere approach to mobile development creates cross-platform mobile applications that work on multiple devices.

While developers can create sophisticated apps with HTML5 and JavaScript alone, as at a few years back, some vital limitations presented themselves many of which included session management, secure offline storage, and access to native device functionality (camera, calendar, geolocation, etc.), but with the advent of technology as we know it today most of these problems are fixed.

As is found in today’s developer scene, developers can develop now for more than one platform, apps built in these nature are called hybrid apps and are quite popular. basically we can define a hybrid apps as.

A hybrid is a web app, primarily built using HTML5 and JavaScript, that is then wrapped inside a thin native container that provides access to native platform features.

The Tools of the Mobile Development.

The world of mobile development is riddled with tools and with the various types of developers we have its clear the tools peculiar to developers would very much differ.

So here are the various categories into which these tools would be seperated into…

  • Native development tools
  • Hybrid development tools
nb: please bear in mind these are not professional terms, just my way of bringing order to chaos.

Native Development Tools

Theses are tools that are used primarily in the creation of native projects and are well suited to the particular platform which their apps are created for.

based on the major mobile os environments there are. we’ll consider the following.

Android

Android Studio in Action

The stage on android application development is littered with lots of sdks (just kidding), but its a beautiful section to focus on, native application development in android is done with the Java Programming Language and More recently the new kid on the Block, Kotlin.

From the android development resource provided by google, A lot can be learnt and practiced to get conversant with android.

the major tools of the trade include.

  • Android Studio — the android studio is an IDE geared directly towards the creation of android applications, it is built off the IntelliJ Ide and has many cool features and additions since the last GoogleIO event.
  • Android SDK — the android sdk are set of environmental additions needed to build a complete android application.

Resources

To facilitate the process of learning android, The CodeMentor IO repo provides some ideas about how to proceed.

timespan: 5-6 months… (intermediate level) i.e with diligent practice and process. with some prior knowledge on java, 3–4 months

Ios

XCode in action

Developing for the IOS platform has never been as much fun as it is now. with the Swift programming language.

The idea of learning swift might seem overwhelming to most new developers but its as easy as any other language. Developing for IOS requires you develop on a Mac and it makes use of the XCode 5 editor.

This is combined with the IOS sdk for the development process…this can be found on the Apple developer network.

Resources

Learning to develop IOS applications could be quite tasking without proper directions but here are some resource to get you through. These where curated by sanketfirodiya(github)

Timespan — 3–6 months with dedicated practice

Windows Mobile

Okay, this is a genre one would sparingly come across in discuss but its there nonetheless and its growing real fast, to develop for the windows devices one would have to run with the C# programming language as this is the key language of choice adopted on the windows platform.

the MSDN(Microsoft Developer’s Network would be of much needed help in this area)

native development on the window’s platform is done using visual studio

its the defacto IDE (integrated development environment) for window’s related development, both mobile and system applications.

But in more recent times there’s been a new star in the block of windows app development, Xamarin is an Ide cross platform, therefore you can also develop for android and IOS on it, but this has Windows at heart.

These are facilitated with the Microsoft Azure services ( Backend as a Service ) to create apps that would run via the internet( in layman terms)

Resource

Most of the resource associated with Mobile development on Windows can be found on the Windows Dev Center

the Idea is to keep things lit and clean.

Timespan — 5–7 months, with diligent practice.

Extended Native development

This is the section in which I put all processes of developing native mobile apps without going through the main process of the native languages in most cases these are done with the use of JavaScript.

In today’s development developers with JavaScript knowledge can build apps based of these skill sets. as once said by Jeff Atwood.

Any application that can be created in Javascript, would probably be create with JavaScript — Jeff Atwood (Founder Stackoverflow)

Based on the knowledge of JavaScript we are gonna first look at this from the JavaScript point of view.

There are several Javascript frameworks to consider, looking at the most important of the crew.

React Native

Getting started with react native requires you to have some knowledge working with react(dont worry react is easy, you’ll be seeing lots about it in part3). React Native simply uses the react structure with some extended apis to create apps for multiple platforms. You can check out the React Native project.

Ionic Framework

The Ionic framework just like react native is a framework for building native mobile apps with the frontend web technologies. These apps are then compiled into their respective client packages (android apk, etc). To learn more about ionic

NativeScript

Quite similar to the Ionic framework is the NativeScript framework, it allows you build native applications using the JavaScript technologies you may already know.

There are several more tools of these nature and they encourage web developers to get into mobile development.

Hybrid and HTML5 Development Tools

With reference to building hybrid applications and softwares, Its not much different from developing apps using the Extended Native tools, and in fact some if not all of them fall into this category.

Some of the tools in this sphere include the following.

PhoneGap

Adobe Air

Jquery Mobile

Sencha touch 2

Challenges

As a new developer especially as a mobile dev( or any other dev there is), It gets a bit hard to keep track of the process and several challenges arise. but the process of debugging is as much fruitful as the process of learning. So in the bid to troubleshoot, here are some resources to help you get there.

StackOverflow

This is essentially a community of developers and programmers helping out each other in solving problems related to code and programmers in general and under the mobile development tag you could find some really good resources.

Github Issues

Most projects and tools are opensource and github is the defacto center of all opensource projects, and as with any project, there may be obstacles and bugs, so issues are being raised in the issue report section on github.

an example of an issues page on github.

From the issues page one can raise an issue on the project and get it discuss and ultimately fixed.

Reddit

On reddit there are several sub reddits for learning development of software. In general some are more focused than others it all depends on the technology you are focusing on.

Conclusion

Mobile development in today’s society is well a bit complicated but at the same time there are so many paths to the stream, and if you are already a web developer you get to develop apps in your native tongue(javascript) its simply a clean process. For none developers its easy to take on the native paths. and with some diligence in practice you’ll get there.

In the next post on this series we would be focusing on the web developers and what goes into becoming a web developer.

Hope this was helpful, if it was kindly give a ❤️..Thanks..