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

Apps First application consultation

Noamm91

Lurker
Apr 18, 2016
7
1
Hey,
I have an idea for application which I think is great and doesn't exist so far so I wanted to start developing it.
I'm a first year student for computer science but like most first year students - I've never done anything like this before.
The application , in it final revision , will need to serve both iOS and Android users , but as first step - I thought to develop it only for Android.
I have 2 reasons for developing for Android first:

1. I own an Android device (LG G3) as well as all of my friends.
2. I already took 2 courses in Java in collage so I have a little background.

Here is a short description , in general , of the application functionality:

The app should allow users to search (using many different filters) in a database , add records to the database (but not delete) , rank the records and add comments.

Here is a short description of what the app requires and what's not:
1. The app needs to have database.
2. The app should looks good: The UI should be rich and inviting.
3. The app doesn't require any very special effects or animation.

I started making an internet research as for where/how to start.
I understand that there are 3 implementations for mobile applications: Native , Hybrid and Web.
I read a little bit about each of them but I can't decide which one is best for my requirement and knowledge so I would like to hear what you think.

Here are my general and specific questions that I would like that you will help me answer:

1. Consider that this is my first app development on one hand and that I already have some knowledge on Java - Which implementation should I choose? Native/Hybrid/Web?

2. I understand that a rich UI is best achived by Native app - is that ture? Is this a good enough reson to go on Native app development?

3. I understand that there are many tools that help with the development proccess , Which tools do you recommand? Can you specify a little bit about Indigo Studio and PhoneGap ? are they easy to use? are they both only for Web/Hybrid applications?

4. Consider the fact that my app should be based on a database - is that give any implementation (Native/Hybrid/Web) an advantage? I saw that there are many tools that help developers build and combine a database in their applications - can you recommand some of them? which one are best for first time use?

5. In my country - most of the people have internet access all the time so should I store the Database localy or remotly?

6. It's important that the app can have notifications system that can alert to users once in a whie that some changes took place, Is this possible in Web applications or only via Native and Hybrid which you get from the playstore.

7. from distrebution point of view - is a Playstore distrebution (Native/Hybrid) is better than Web distrebution (Web applications)?

8. How much time do you think it will take to an inexperienced guy like me to develop a basic revision of a database based application?

Thank you very much in advance , I'm aware that this is a long post and that my English isn't very good but any comment will be appreciated.
Noam
 
1. Consider that this is my first app development on one hand and that I already have some knowledge on Java - Which implementation should I choose? Native/Hybrid/Web?

You would normally use a pure web implementation if you wanted to integrate an existing website into your app, or you could write a web application from scratch if you needed the application to be available on other platforms e.g. desktop/laptop web browsers. By choosing a web application, you would be shifting to a server based implementation. The amount of native code required for your app would be minimal. In fact you need not write an app at all - simply provide mobile friendly web pages, and use the phone's web browser. As I say, the main advantage here is cross platform support (via the web browser). In terms of implementation, you are looking at involving things like HTML, Javascript and/or PHP/Java. You will also have to make use of a back-end database (MySQL)

A pure native app can give you a much richer UI, and of course all your code is Java. This can make things more manageable, there are less moving parts, and if you don't have any experience in the other things above, then it might be a better option.

The downside of course with native, is that it's platform specific. If you want an iOS version, that's a completely different implementation. There are cross platform solutions available, but as I understand it they aren't perfect.
But even with an Android app, there's a certain testing overhead with getting it working on different types of device. E.g. how does it look on a tablet? How many versions of the Android platform will you support?

2. I understand that a rich UI is best achived by Native app - is that ture? Is this a good enough reson to go on Native app development?

Yes. Also consider that not everyone has constant Internet access. Having a local native app means it's always available.

3. I understand that there are many tools that help with the development proccess , Which tools do you recommand? Can you specify a little bit about Indigo Studio and PhoneGap ? are they easy to use? are they both only for Web/Hybrid applications?

Android Studio for native apps

4. Consider the fact that my app should be based on a database - is that give any implementation (Native/Hybrid/Web) an advantage? I saw that there are many tools that help developers build and combine a database in their applications - can you recommand some of them? which one are best for first time use?

It depends how you want to make your data available. Does the app need updates from a central server? That means you'll need a remote database, and provide web services to access that database.
Also consider what happens if your app can't access the remote database, for some reason.

5. In my country - most of the people have internet access all the time so should I store the Database localy or remotly?

As above, depends on the needs of your app. If no need for remote updates, or centrally administered data, then a local database will be ok.

6. It's important that the app can have notifications system that can alert to users once in a whie that some changes took place, Is this possible in Web applications or only via Native and Hybrid which you get from the playstore.

You can provide a web service that will be used by your app to query for updates.

7. from distrebution point of view - is a Playstore distrebution (Native/Hybrid) is better than Web distrebution (Web applications)?

I only download apps from the Play Store. That is the recommended way to distribute your app.

8. How much time do you think it will take to an inexperienced guy like me to develop a basic revision of a database based application?

Difficult to say. You might be a genius and become an expert in no time at all. It's not just development that takes time though. Testing your app properly will also take some effort.
Also depends on the features required. More screens will take more time.
And depending on your artistic talent, you may need to work with a graphic designer. A polished app usually has smart graphics, like icons etc. Although it's possible to buy this stuff online.
 
  • Like
Reactions: mikedt
Upvote 0
Hey,
Thank you very much for your detailed answer , I have some folowing questions.

You would normally use a pure web implementation if you wanted to integrate an existing website into your app, or you could write a web application from scratch if you needed the application to be available on other platforms e.g. desktop/laptop web browsers. By choosing a web application, you would be shifting to a server based implementation. The amount of native code required for your app would be minimal. In fact you need not write an app at all - simply provide mobile friendly web pages, and use the phone's web browser. As I say, the main advantage here is cross platform support (via the web browser). In terms of implementation, you are looking at involving things like HTML, Javascript and/or PHP/Java. You will also have to make use of a back-end database (MySQL)

A pure native app can give you a much richer UI, and of course all your code is Java. This can make things more manageable, there are less moving parts, and if you don't have any experience in the other things above, then it might be a better option.

The downside of course with native, is that it's platform specific. If you want an iOS version, that's a completely different implementation. There are cross platform solutions available, but as I understand it they aren't perfect.
But even with an Android app, there's a certain testing overhead with getting it working on different types of device. E.g. how does it look on a tablet? How many versions of the Android platform will you support?

My biggest fear is that I'll lose track of the development if I'll go on Web app because of the "moving parts" you mentioned and my lack of knowledge in HTML , CSS and JS and since one of my objectives is the proof of concept of my idea so I don't realy care about cross-platform at the moment , so I think I'll go for Native app.


Yes. Also consider that not everyone has constant Internet access. Having a local native app means it's always available.

Ok.



Android Studio for native apps

Ok , but can you specify what is Android Studio? I thought that I should use Eclipse (That what I use to create my desktop Java applications).

It depends how you want to make your data available. Does the app need updates from a central server? That means you'll need a remote database, and provide web services to access that database.
Also consider what happens if your app can't access the remote database, for some reason.


As above, depends on the needs of your app. If no need for remote updates, or centrally administered data, then a local database will be ok.

There is no need for remote updates but the database might simply weight upto 100MB so I think this to heavy to force users to download it and remote access is more logical in this scenerio.

You can provide a web service that will be used by your app to query for updates.


I only download apps from the Play Store. That is the recommended way to distribute your app.



Difficult to say. You might be a genius and become an expert in no time at all. It's not just development that takes time though. Testing your app properly will also take some effort.
Also depends on the features required. More screens will take more time.
And depending on your artistic talent, you may need to work with a graphic designer. A polished app usually has smart graphics, like icons etc. Although it's possible to buy this stuff online.

Looking forward for your replay,
Noam
 
Upvote 0
Ok , but can you specify what is Android Studio? I thought that I should use Eclipse (That what I use to create my desktop Java applications).

You can use Eclipse if you want, but Android Studio is the official IDE for Android. It's based on Intelij, which is an excellent Java IDE.
http://developer.android.com/sdk/index.html
Having used both, I can say that I find Android Studio is much better than Eclipse with its Android plugins.
 
Upvote 0
You can use Eclipse if you want, but Android Studio is the official IDE for Android. It's based on Intelij, which is an excellent Java IDE.
http://developer.android.com/sdk/index.html
Having used both, I can say that I find Android Studio is much better than Eclipse with its Android plugins.

Alright.
Once again , Thank you for your first respone.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones