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


#1

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.
Java seems unintuitive to me and I would prefer to avoid it.

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.


#2

On this I have absolutely no expertise, and thus no opinion. I did find some interesting DataTable plug-ins (if that’s what they are) here,

http://www.web2pyslices.com/home

From what we can see, there seems to be ample documentation and hand-holding, as well as a community. It’s written in Python but it appears to have support for JavaScript components so you can keep the front end all HTML/JS. What’s also interesting is that one instance can have several websites, all on their own database.


#3

Java is the native language of android, as such its heavily documented, lots of example and usable software available.

recommended software, android studio:

https://developer.android.com/studio/index.html

which seems the right tool for the job


#4

Thank you for your thoughtful reply.
I know that Java is the official language for Android, but from what I can tell, it’s not the easiest to learn for beginners or the most suitable for database heavy apps.
I won’t be needing to access any of the Android phone features, like camera/GPS etc.
I have tried to grasp Java already and found it very difficult.
I am hoping that there are alternatives to learning Java.


#5

Thank you, mtf.
I hadn’t seen that site before and it looks very helpful.


#6

But where is the database located? You are are going to store the database on the phone? Given you need to store pictures and mp3 files, some phones have pretty limited storage when going for Sqlite. Shouldn’t you opt for a remote database with API then?

Well, building an app is a marathon, not a sprint. Going for an easier language might get you going easier in the beginning (sprint), but you will struggle later (marathon)


#7

Those are very good questions and exactly what I need advice on.
From looking at similar apps, it seems they load photos or audio files as the user needs them (because there is a slight delay), so they must store them remotely.
I could easily upload the files to a cloud based webhost.
The technicalities of setting this up are something I need more information on.

Yes, I agree that this is a long term project, which is why I would rather be programming in a language that makes more sense to me.
I don’t know if SQL is easier than Java for everyone, but it seems to be that way for me.
Since some Android apps are written in Python, that might be another option.
I’m open to all advice at this stage.


#8

I was also going to recommend Java.


#9

to give those details, we need to understand the project

i found this stackoverflow question to be helpful:

I don’t know how many files you need, but it seems remote database + api is also the option for you

api simply means your api can make calls to the database. Maybe something like this already exist and you can use it?

lets clarify something: SQL = structured query language, its the language used by many databases (sometimes with slight dialect), sqlite and mysql are databases using sql. So sql is only retrieving and storing data in database

You can’t build the GUI of your app in sql. Python is possible, but Java is still the best canidate

you could also consider things like phonegap, its html, css and JS, making it relative easy.