Java Mobile programming for a beginner, where to start? [closed] - java

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
After I downloaded the Google Mail and Google Maps application into my mobile phone I got an idea about a service that I want to implement.
My problem is that I never did any programming for the mobile platform and I need someone to point me out some resources for the Hello World on a mobile and then something a bit more complicated.
Let's make it a bit broad, as in J2ME in general for the moment. I'll dig into Android once I get the non Android/*Berry/etc out of the way.

Clicking here would be a pretty good place to start, it's where the best J2ME programmers have started before you...

Install NetBeans with J2ME - you can test your mobile applications on a variety of target device emulators. Easy development model - you can develop GUIs rapidly with the Visual Mobile Designer.

I would really recommend looking at Blackberry as a target platform to play with, for the following reasons:
Lots of documentation
Access to cheap devices for testing
No walled garden (approval system or closed marketplace), you can distribute your app via over the air downloads (user just has to point their browser to the appropriate JAD file and download/install begins)
Large user base (at least within the US)
Quality forum support for blackberry developers
Supports J2ME. You can either develop Blackberry specific apps of J2ME specific apps, both run on blackberry devices.
Blackberry specific apps have a more elegent UI library (lots of J2ME witdgets you need to roll your own or use a library like LWUIT) and you won't be able to run Blackberry specific apps to other devices (though the underlying logic will be the same)
Both Blackberry and J2ME specific apps can still access and use underlying non-ui classes of each framework.
The only cons:
Not as sexy as Android or iPhone development
Initial setup can be clumsy
Tough to monetize because no formal blackberry store to manage transactions and installs
You can get more info about Blackberry development here:
http://na.blackberry.com/eng/developers/started/

Starting from Sun's JavaME (former J2ME) website you can find a lot of documentation and examples (even if i must admin, they are a little old).
If you want something more complex yet more advanced, you can have a look at GEAR Java Mobile Framework. It's a lightweight JavaME framework and it's hosted on sourceforge.
There is also a blog containing some usefull tutorial on how to start a new application from scratch.

Related

What are the disadvantages of developing android using cross platform languages? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I started to learn android development in Java and followed that path up to now.
Nowadays there are many cross platforms development languages such as Xamarin, React Native and etc.
I know that I can develop for both iOS and Android in cross platform languages which is usually requested by customers to develop mobile app in these two platforms.
Now my question is what is the benefit for developing in native android and iOS platforms over using cross platform languages?
I think if I have not enough reason to stuck to native development, I could not satisfy my customer to develop their app in native languages and I need to migrate to cross-platform languages.
So I want to know are there any bold benefits for native development or not?
This is one of those endless debates in development. There are so many reasons to go either way.
Native Benefits:
Best possible user experience
Access to all the features of the os and hardware
Smaller and faster applications (especially UI responsiveness)
Often easier to maintain (no need to deal with platform bugs)
Quicker response to o.s. changes
Cross-platform Benefits
Faster development to access the larger user base
Easier development - no need to learn as much about each native system
Powerful integration options (Cloud, Security, Game Engines, etc.)
For involved UI, I suggest that building your UI to target the native platform and everything else to be cross-platform. It is important to understand how important the user experience is to the success of the app you are making. Something simple like accessing some data from the web and showing a chart will look fine in a cross-platform app. Doing advanced image manipulation will likely require native UI to feel right.
The bottom line is "it depends on the project"
It depends on your project requirement to develop native app or hybrid app.
Choose native development if
High performance
You want a fluid, high responsive user interface
The user interface should feel familiar to users on each platform
Your application needs full access to all device hardware and functionality.
Choose cross-platform development if
You want to develop a quick prototype to test and validate a simple concept
Your application has a simple user interface and has limited user interaction, such as listing and showing news content
Your user interface has limited scrolling and swiping and users will not be affected by a sluggish screen response
Your application does not process complex data or work with audio or video
Cross-platform development is not a silver bullet.
Taking decisions about changing from native development to hip frameworks and cross-platform tools, you need to understand specifics of implementing same features in terms of this cross-platform tools. And this can be a problem in itself, because you will need experience with cross-platforming.
Cross-platform tools are cool as in "it will be a single codebase", but in some cases they are not. Different OS means different UI / UX, services and underlining implementations, as they form according APIs. It is baffling to see a React Native project with different set of modules written for specifics of Android and iOS, just to understand that this exact project should have been written as separate native applications all along.
So, before developing, take a quick dive into specific cross-platform tooling you think will be the best and you will understand implications of using this tooling for your project.
So just use Kotlin. Kotlin is interoperable with Java and working with JVM, but also has native compiler for iOS. Of course development for both platforms makes some limits, but if you want to create cross platform application it may be useful for you.

Why Android support java but not other languages? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 6 years ago.
Improve this question
I see the statement below on Google in one form or another
Most of the Android development is Java based because Android supports
a large number of Java libraries
I am coming from Java based web application background. I have never heard the statement "Windows supports one specific language but Linux does not". Then why in context of mobile OS we say android supports Java. The role of any OS is to execute the commands and not to support the specific language, right?
I know I am missing something basic here, but what's that?
Then why in context of mobile OS we say android support java.
I do not know who "we" is. Experienced computer programmers would not say that, and even your made-up quote does not say that.
Role of any OS is to execute the commands not to support the specific language right ?
Correct. And, given a rooted Android device, you are welcome to try porting any language you like to Android, and in a custom ROM mod, you are welcome to arrange to allow the user to run any program they want in any of those supported languages.
However, most people do not have rooted Android devices.
On a normal Android device, the Android frameworks put some limitations on what you easily can use for programming.
For example, you can divide the world of Java-capable servers into two main categories:
Those where you have complete control over the server, which is roughly equivalent to running a rooted Android device
Those where all you can do is upload a WAR and related files (e.g., static assets), which are run on a Java-powered server managed by somebody else
In that latter scenario, you are not going to have complete flexibility in programming. Presumably, you could integrate JVM-based scripting languages, but you may have difficulty in using C++. That is not an issue with the OS — the server itself is probably perfectly capable of running a C++ program. It is an issue of the framework in which your code is running (whatever people use for WARs nowadays, as it has been a long time since I worked in server-side Java development).
The primary framework for Android development is based on Java. Courtesy of WebView, this also opens up hooks for hybrid development (HTML/CSS/JS). NativeActivity makes it possible to write full Android apps in C/C++. Various toolchains allow you to write in other languages (e.g., Kotlin) that compile into something that works with Android's frameworks, and you can embed scripting languages. But you still need to stick to the frameworks, which puts some limits on what you can do and how you can do it. This is not the fault of the Android OS, but rather the frameworks.
Yes, Android is based on Java. But recently the grandpa Delphi acquired fire monkey, which is supposed to transform Delphi code in to native Android code. That way it supposedly run just like a native application.

Where do I start to make an Android 2D game? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am still very new to coding and Stack Overflow, this is my first question. I have been coding random apps, and experimenting with Android for the last 3-4 months. I recently published my first app. Just a day counter, with a widget. Still pretty basic, but my intention has always been to create Android games. My question is where do I start to make an Android game? Should I make games using just the default libraries and API on Android Studio or should I just make a Java game on Eclipse then try to import it to Android. I am trying to start by doing a simple 2D game. Can someone please explain to me what options do I have, or point me in the right direction please. Thank you.
You can use either Android standard API like Canvas API or OpenGL ES A good book explaining both aspects is Mario Zechner's Beginning Android Games. You can find a good examples of using both API in different games.
Also you can use third party frameworks and engines. Good one is Cocos2d-x (it is c++ framework) it is well known open source cross platform game development framework with good community and a lot of examples and books over the internet.
Also you can check Unity (C# or JavaScript) it is proprietary game engine extremely easy to learn and use (you can make many features like sprite animation without any code). This engine have large community and books. There is also a ton of well written documentation. (There are two licenses personal and pro).
Another good is Unreal Engine (C++) it is similar to Unity but from other developer. This is also good engine for game development and free to download and use (you must pay 5% royalty to epic games only if you earned more than 3k on your game).
There is also libGdx framework for cross platform development (java).
You can also check marmalade(C++), Corona SDK (Lua), AndEngine (pure android game engine).
My own opinion you should check Unity or Cocos2d-x. These are two most popular engines for Android/iOS game development so you will easily find books, videos and tutorials and even video courses (1 2) how to work with these engines.
you should try andengine for 2d games. you can find basic tutorials here
Start with GameSalad
easy and fast.

What should a developer know before building cellphone apps? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I want to start making cellphone apps with Android as first choice but not the only one. I have 10 years of experience with Java, C#, C++ in commercial applications and I know that many things and practices for this applications are not valid for cellphones. Where do I start reading? How do I adapt my way of thinking to this new environment as quickly as posible? I plan to make some money with it sometime in the future as an extra income or a career change maybe, who know. Any resource or advice you could recommend will be very welcome. Thanks in advance.
Just start with Android Developer site http://developer.android.com/index.html.
It contains all you need for the beginning. Also take a look onto Commonsware android books,
those are really great both for beginners and experienced programmers - http://commonsware.com/books.html.
You could start with two great books listed as reference [1] (Ableson F. et al., Unlocking Android, 2009. Manning Publications Co., ISBN 978-1-933988-67-2) and [4] (Conder S. and Darcey L., Android Wireless Application Development, 2009. Addison-Wesley, ISBN 978-0-321-62709-4) in my degree thesis. Both have an extensive walk-through of Android, which you as a developer should know. You'll get all you need from "Hello World" to deploy an actual application in the Android Market.
Android is the place to start, since you already know Java and C# and C++. You can even use native classes in Java written in C or C++ if you have some useful standard classes in your library. More on Natives you'll find in the reference book [9] (Silva V., Pro Android Games, 2009. Apress, ISBN 978-1-4302-2647-5).
The best of luck!
Only support the TOP os's which generate income. So at this moment IOS and Android.
Don't go down the path of Symbian and Java... it's dirty, and you won't like what you see down there.
What really got me going was the Hello, Views documentation. Will really get you up and running instantly.
I recently decided studying Android, and http://developer.android.com was a great resource. You should read the Application fundamentals doc first and User Interface documentations later.
There are some tutorials too.
I read the whole Application fundamentals, and that gave me a good idea of "how to program for Android" since it has its own architecture and environment. Get the idea of Activities, Services, Broadcast Receivers and Content Providers and try to adapt yourself to that structure. Then read about how Tasks work, and later go into UI.
As a subjective opinion, being Android so popular and growing, I don't think it's worth the effort to study Java ME or even C (I'd go for iPhone devel in any case with Objective-C). Android will probably give you more money and faster. Java FX might be interesting...
iPhone
Android
Samsung Bada
I would like to mention that iphone and Android communities are very much evolved and have a great developer community and resources. Samsung Bada doesnt have a good developer network nor does the SDK support many operating systems. I think it works only on Windows.
You need to first understand the mobile platform architecture, the different frameworks which the platform exposes to the programmers to develop applications.
There are emulators for you to test, however you have to have one of those devices to do a real time on-device testing.
With respect to programming, i think your experience is more than enough but one needs to come out of the frame of mind and think differently. A typical device has limited processing power, limited memory, limited screen space but the user demands beats expectations compared to desktop/enterprise software.
Lastly most important thing is the IDEA of the application. You may want to survey existing application on the stores and start thinking. You can also develop and application which would solve your problem with mobile devices and you know other users also may want such a application.

a good smart phone for java development? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 9 years ago.
Improve this question
I'd like to do some development of smart phone apps and my native programming language is java.
The first application I'd like to write will need to be able to (attempt to) connect to a network (LAN or WiFi) automatically in the background (on a schedule).
would an android phone be the best path or are there competitive purer java options?
I would definitely go with Android, extensive SDK, community, and increasing popularity. I think the What is Android answer on the developer web site says it all.
"Android is a software stack for
mobile devices that includes an
operating system, middleware and key
applications. The Android SDK provides
the tools and APIs necessary to begin
developing applications on the Android
platform using the Java programming
language."
I think Android is the best start path today.
The main options would probably be BlackBerry, J2ME for Nokia ect, or Android. I personally would recommend Android. BlackBerry is overall a little more work than Android and the pure J2ME option is incredibly underpowered in comparison to either.
Blackberries use java applications, so that wouldn't be a bad choice.

Categories

Resources