• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

What is the best way to make an Android app (for a beginner programmer?)

I have been researching this for a week and would like some more advice from someone who has experience.

My requirements are:
  1. Easy to learn
  2. Easy to debug
  3. Free tutorials (and plenty to choose from)
  4. Free implementation. (no paid services)
My app is going to teach language, and have some simple quizzes with pictures and mp3 sounds.

Because the quizzes will need to shuffle words around, a table- style database would suit best.
This means SQLite or MySQL database rather than JSON.

From what I can tell, probably the best language to communicate with SQL type databases is SQL.

Although it’s not the easiest language to learn, there are plenty of free tutorials I can find.

Another alternative that looks attractive is web2py, because it seems geared to suit my project, and might be faster, however, it’s less widely used and less teaching material is available, so I might get stuck.

Kotlin looks like a wonderful language to learn, but there are very few free tutorials.
Although Java is the official language for Android, it seems unintuitive to me and I would prefer to avoid it if possible.

Could you please recommend:
  1. Which language to learn,
  2. What code editor is suitable for beginner (especially debugging),
  3. What database GUI would be easy to use for this kind of project.
  4. Any other software that would help.
Any advice would be appreciated.
 
Hi. To answer your specific questions:-

1. Java
2. Android Studio
3. SQLite is the standard database used in Android. I've never used a GUI client to interact with the DB, but they do exist. For example http://sqlitebrowser.org/

Your app requirements are wide ranging, and the way to tackle this is to start simple. Learn how to code a basic app, then focus in on the specific items required for your app. Android Studio comes with lots of sample apps.
Also check out this thread for a starting point, and useful links

https://androidforums.com/threads/please-read-me-before-posting.987318/

Why do you think Java is unintuitive? And why would you think that Kotlin is any better? Do you have a programming background? I can tell you that Java is an extremely user-friendly language, and very accessible to newbies. There's a reason it's the number one language in use today, and used on most University courses as a training language.

Your first step will be to learn the Java language before attempting to dive in and start coding. Knowing the language is pre-requisite knowledge.
 
Hi. To answer your specific questions:-

1. Java
2. Android Studio
3. SQLite is the standard database used in Android. I've never used a GUI client to interact with the DB, but they do exist. For example http://sqlitebrowser.org/

Your app requirements are wide ranging, and the way to tackle this is to start simple. Learn how to code a basic app, then focus in on the specific items required for your app. Android Studio comes with lots of sample apps.
Also check out this thread for a starting point, and useful links

https://androidforums.com/threads/please-read-me-before-posting.987318/

Why do you think Java is unintuitive? And why would you think that Kotlin is any better? Do you have a programming background? I can tell you that Java is an extremely user-friendly language, and very accessible to newbies. There's a reason it's the number one language in use today, and used on most University courses as a training language.

Your first step will be to learn the Java language before attempting to dive in and start coding. Knowing the language is pre-requisite knowledge.

I looked at a Java tutorial a week ago, and I found the concept of class to be hard to grasp (possibly it was just a poor tutorial). Since Java is an object-oriented language I figured it may not be what I am looking for.
I want tables of data that I can use to create simple quizzes.
The user's success with the quizzes also needs to be stored in a database and then displayed later to show progress.

I read some articles raving about the advantages of Kotlin:
eg:
https://medium.com/@octskyward/why-kotlin-is-my-next-programming-language-c25c001e26e3

But as free tutorials are scarce for Kotlin, I don't think it's going to be ideal.

I have experience in programming from years ago in BASIC.
I was able to make quite complex games just using the user manual. (that was before the internet was invented!)
 
I looked at a Java tutorial a week ago, and I found the concept of class to be hard to grasp (possibly it was just a poor tutorial). Since Java is an object-oriented language I figured it may not be what I am looking for.
I want tables of data that I can use to create simple quizzes.
The user's success with the quizzes also needs to be stored in a database and then displayed later to show progress.

I read some articles raving about the advantages of Kotlin:
eg:
https://medium.com/@octskyward/why-kotlin-is-my-next-programming-language-c25c001e26e3

But as free tutorials are scarce for Kotlin,
I don't think it's going to be ideal.

Sometimes we may have to spend money to acquire the knowledge that we desire... :thumbsupdroid: e.g. buying books.

I have experience in programming from years ago in BASIC.
I was able to make quite complex games just using the user manual. (that was before the internet was invented!)

I know that means Beginner's All-purpose Symbolic Instruction Code, and I did use it on my Commodore 64. :D
 
It's your choice really. You can go with Kotlin, but I think it's very telling that I have never, ever seen one question posed in this forum, where the developer is using that language.
You say there are few online tutorials for it. Maybe try finding a good book, I'm sure they are available.
As you're coming to this from a BASIC background, then I can understand that the object oriented way of thinking could seem quite alien. But believe me, it really lends itself to modelling, and creating good software architecture.
Ultimately it is your choice, but personally, having used a lot of programming languages, I have to say that Java is a joy to work with, and creates highly maintainable code, if written in a correct style. It's worth persisting with.
 
Last edited by a moderator:
It's your choice really. You can go with Kotlin, but I think it's very telling that I have never, ever seen one question posed in this forum, where the developer is using that language.
You say there are few online tutorials for it. Maybe try finding a good book, I'm sure they are available.
As you're coming to this from a BASIC background, then I can understand that the object oriented way of thinking could seem quite alien. But believe me, it really lends itself to modelling, and creating good software architecture.
Ultimately it is your choice, but personally, having used a lot of programming languages, I have to say that Java is a joy to work with, and creates highly maintainable code, if written in a correct style. It's worth persisting with.

Yes, "alien" is a great word choice!
Since Kotlin is an official android language and is much easier to understand than Java, I think it's going to be my best long term solution. With some more targeted research I have found some more good quality free (and paid) tutorials.

Here's another good article on Kotlin:
https://techbeacon.com/why-you-should-use-kotlin-android-development
 
If it works for you, use it.
I don't agree with much of what is presented in that article.
 
Back
Top Bottom