What should i study in order to build my first Android app?

Click For Summary

Discussion Overview

The discussion centers around recommendations for resources and approaches to learn Android app development, specifically for creating an app to manage car bookings for a business. Participants share their experiences and suggest various programming languages, tools, and learning materials suitable for beginners in app development.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant proposes using Udacity's Android Basics and Developer Nanodegrees as a starting point for learning Android app development.
  • Another participant recommends the book "Hello Android" for getting started with Java on Android and mentions Kotlin as the endorsed language by Google for Android development.
  • Some participants suggest using Apache Cordova to create a web app that can be converted into a mobile app, highlighting its potential suitability for the discussed project.
  • One contributor emphasizes the value of downloading an emulator and experimenting with existing examples to learn new APIs.
  • A participant shares their transition from Eclipse and Android SDK to Android Studio, recommending it as a robust IDE for Android development.
  • Various programming languages are mentioned, including Java, C++, Kotlin, C#, and alternatives like Xamarin, with discussions on their respective uses and requirements.
  • Several online courses and books are recommended, including a beginner-level course from the University of Maryland and a specialization from Vanderbilt University, along with specific titles for further reading.
  • One participant notes the Processing IDE's Android mode as a resource, while also mentioning potential issues with compatibility with new Android SDK releases.
  • There are suggestions for apps like AIDE and APDE that allow development directly on Android devices, bypassing the need for a PC.

Areas of Agreement / Disagreement

Participants express a variety of opinions on the best resources and tools for learning Android app development, indicating that no consensus exists on a single approach or resource. Different programming languages and frameworks are discussed, with some participants favoring traditional app development methods while others advocate for web-based solutions.

Contextual Notes

Participants mention various limitations and dependencies, such as the need for specific tools like Android NDK for C++ development, and the potential instability of third-party tools with new SDK releases. There is also an acknowledgment of the varying complexity of resources and the need for foundational knowledge before tackling app development.

Who May Find This Useful

Individuals interested in learning Android app development, particularly those with prior programming experience looking to apply their skills in a new context, may find this discussion beneficial.

diredragon
Messages
321
Reaction score
15
This year I made a resolution to by the end of summer build an Android app for my Uncle’s bussiness (Rent-a-Car) which would help him organise the dates of booking a car. I have previous programming experience with C and C++ but not with app creating.
The idea for the app is really simple but effective. You create your database of cars along with their specifications. The app shows a calendar and an option for viewing the calendar for each car separately or all at once. With a tap on the day of the calendar you can add a booking of one or more cars. When you switch to one car calendar, all the dates on which the car is booked is red so you know that it’s not free on that day. The all-cars calendar shows a date red only when all cars all booked on that day. Otherwise it is white and can display a car which is free on that day. This is the priliminary idea and i would add lots of other features once i learn Android app development.
The reason i post here is to get recommendations on the resources i should use to learn to build this idea into an app.
My first thought was to enroll into Udacity Android Basics and Developer Nanodegrees (free courses separately). Is this an effective way? Should i also read some book from which i would benefit?
Any suggestion is welcome :)
 
Technology news on Phys.org
The first book I read was Hello Android by Burnette. It can get you started using Java on Android.

Google has endorsed Kotlin as a programming language for Android.

https://en.wikipedia.org/wiki/Kotlin_(programming_language)

However, there is another way to make an app using Apache Cordova and a making a web app (ie using Javascript+web app server or NodeJS). Apache Cordova converts the web app into something that has the look and feel of a mobile app or either iOS or Android or any of several other supported platforms. For apps like yours this is probably the best option.

https://en.wikipedia.org/wiki/Apache_Cordova

For web apps, you may several choices too:
- Ruby on Rails
- Grails
- Javascript + web app server

Ruby on Rails and Grails (I like Grails) allows you to prototype a web app quickly complete with a backing database and to then flesh it out.

https://en.wikipedia.org/wiki/Grails_(framework)

https://en.wikipedia.org/wiki/Ruby_on_Rails

You can find tutorials on youtube such as the TreversyMedia channel with many goo web app video:

https://www.youtube.com/results?search_query=traversy+media

There are others if you search around.
 
  • Like
Likes   Reactions: QuantumQuest and diredragon
For me, the best thing to do is to just download an emulator and experiment with it. Whenever I'm learning a new API, I simply download a bunch of examples of varying complexity from the internet and get them to run.
 
  • Like
Likes   Reactions: diredragon
For some years I was building Android apps using Eclipse and Android SDK but for the two past years I use Android Studio. It is a very good IDE so I recommend it.

About the programming languages you can use, you have several choices: Java is the official language for Android, C++ (with the use of Java NDK for native coding) and Kotlin - as also pointed out by jedishrfu, which is a programming language developed by JetBrains and announced by Google at its I/O 2017 developers conference as an official language for Android. It is an open source project under the Apache 2.0 license. You can use all these languages in Android Studio as well - for compiling and debugging C++ you'll also need Android NDK, CMake and LLDB which can be installed using SDK Manager. Kotlin is fully supported in Android Studio 3.0.

There are more options regarding programming languages like C# - one way that I am aware of is to use it with Xamarin and you can create cross-platform applications, Basic and Corona/Lua (a cross platform tool built on Lua programming language). As jedishrfu points out there is also the "web" way of building an app with Apache Cordova and alternatively you can use PhoneGap - an open source distribution of Apache Cordova, and the usual HTML, CSS, JavaScript web tools.

Regarding resources, I highly recommend "Programming Mobile Applications for Android Handheld Systems" course given by University of Maryland, College Park (beginner level) and the 5-course specialization "Android App Development" given by Vanderbilt University, both on Coursera.

There are also many good books for Android development. At the beginner level I would recommend the book recommended by jedishrfu in post #2 and also "Android Programming for Beginners". For a more in depth coverage of the new features of Android I recommend Reto Meier's "Professional Android, 4th Edition" - which is to be released on April of this year, based on the very good previous edition of this title "Professional Android 4 Application Development".

There are also good tutorials on the net. I recommend the official ones by Android Developers and also Vogella's tutorials which I 've personally found of much help in the past. You'll also need to look at the Android SDK and Android app documentation from time to time.
 
  • Like
Likes   Reactions: diredragon and Mark44
One more resource is the Processing IDE which has an Android mode. However, it’s a bit flaky with each new release of Android SDK as Google loves to tweak things making third party tools fail.

Other alternatives include AIDE and APDE apps on the Android store which allow development directly on this device bypassing the need to side load an app from a PC to the device. APDE has a Processing IDE feel and AIDE has an Eclipse feel.

Lastly, you’ll need to find out how to place your device in developer mode to access more features needed by developers. Nexus 7 required you to click on some Android version number display seven times to activate it.
 
  • Like
Likes   Reactions: QuantumQuest and diredragon

Similar threads

Replies
3
Views
1K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 6 ·
Replies
6
Views
6K
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 11 ·
Replies
11
Views
3K
Replies
5
Views
2K