Welcome to Part 4 of this review of the Pluralsight course Android Beginner Series: Understanding Android by John Sonmez.
John is the founder of Simple Programmer, and the author of the best selling book Soft Skills.
He also hosts the GetUp and CODE podcast, where he talks about fitness for programmers. John is a life coach for software developers, and helps software engineers, programmers and other technical professionals boost their careers and live a more fulfilled life. He empowers them to accomplish their goals by making the complex simple.
In this module we’re looking at what makes up an Android application, how apps work and what kinds of apps are supported by Android.
Ways To Develop Android Apps
Web Vs Native
Perhaps the first choice to make when building an Android App is whether to develop it in a web browser, or make it a native application.
The Android operating system has a browser built in which we can use to run our web application.
Native applications run directly on the device and are installed on that device.
Web Pros and Cons
Some advantages are that you develop with one common technology can work on many devices, it runs anywhere with a browser, and there’s no need to use an app store.
The user could just access the app using a URL in the browser.
Some disadvantages are that it’s usually slower, may have a non-native interface, and can’t access all the low level features of the device.
Later in the course, John talks about some frameworks that help us to make a web application look like a native interface.
Native Pros and Cons
Some advantages of native apps are that you get the look and feel of Android, can use Android specific tools and IDEs, it’s easy to access the hardware, and it’s usually faster.
Some disadvantages are that it only works on Android, you have to learn Android development, and you have to install it.
Mobile Web development
John explains a bit about the technologies used for mobile web development. There are lots of frameworks to choose from, and these can make it easier for you to create your web app.
Web frameworks
John introduces jQuery mobile. John recommends Scott Allen’s course jQuery Mobile and ASP.NET MVC 4.
John also talks a bit about Sencha Touch and Kendo UI. John recommends Introduction to Kendo UI by Keith Burrell.
Using Java
John says programming Android Applications in Java is very popular. The third course in John’s beginner series covers Android development with Java.
He introduces two of the most popular IDEs for Java programming: Eclipse and IntelliJ.
C and C++
We can also develop Android applications using C or C++. As these are lower level languages John only recommends taking this approach if you absolutely need to.
Programming your application entirely in C and C++ could result in a performance increase.
For more information on the Native Development Kit (NDK) see https://developer.android.com/ndk/index.html
App Inventor
A useful tool for beginners is the App Inventor. This will be covered fully in the second course in John’s Android beginner series where it is used to create a full fledged application.
Xamarin tools
John says Xamarin is his favorite way for developing Android applications. Development is done in C# and .NET instead of Java.
John explains that we can use an Android Plugin inside of Visual Studio and do our development in Visual Studio.
And alternative is Xamarin Studio which he describes as a very nice IDE. This was originally called MonoDevelop and has come on a long way.
John has also produced the Pluralsight course Mono For Android which is the older version of Xamarin Studio.
Hybrids and Cross Platform
John cautions against the use of hybrid solutions because there are some tradeoffs that you need to be aware of.
Hybrid Examples
John introduces PhoneGap, and if you want to learn more you can watch his course Introduction to PhoneGap.
We are also introduced to Titanium Appcelerator, which comes with it’s own IDE, and RhoMobile by Motorola, which is geared towards enterprise type applications.
Game Development
We can develop in Java with Java libraries, or using specialised fraemworks and tools. John introduces MonoGame, which is based off of the Microsoft XNA framework and is cross-platform.
John has also produced the course Cross Platform Game Development With MonoGame.
We are also introduced to Corona SDK, another cross-platform solution.
John says Unity is perhaps the most professional solution for developing Android games. It’s more expensive and difficult to learn than some of the alternatives however.