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

Click For Summary
The discussion centers around building an Android app for a car rental business, focusing on organizing booking dates. The app concept includes a database of cars, a calendar view for bookings, and visual indicators for availability. The creator seeks resources to learn Android app development, considering options like Udacity's courses and various programming languages such as Java, Kotlin, and C++. Recommendations include using Android Studio as the primary development environment and exploring Apache Cordova for web app development. Suggested resources for learning include online courses from Coursera, books like "Hello Android" and "Professional Android," and tutorials from Android Developers and Vogella. The importance of experimenting with emulators and accessing developer mode on devices is also highlighted for practical learning.
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 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 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 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 QuantumQuest and diredragon
I tried a web search "the loss of programming ", and found an article saying that all aspects of writing, developing, and testing software programs will one day all be handled through artificial intelligence. One must wonder then, who is responsible. WHO is responsible for any problems, bugs, deficiencies, or whatever malfunctions which the programs make their users endure? Things may work wrong however the "wrong" happens. AI needs to fix the problems for the users. Any way to...

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 1 ·
Replies
1
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
Replies
5
Views
2K