Mobile Programming for Blackberry, iPod, and Android - mobile

I bought an iPod touch 3rd Gen half year ago, and I got recently an iPad WiFi. I also have a Onyx Bold Blackberry.
I don't have a Mac Book or any other apple product of laptop.
As a programmer, I speak C, Delphi and Java. I'd like to start playing around in mobile application.
I don't know whether I should start in Blackberry platform, iPod /iPad platform, or Android platform.
Ok, for each platform, what is the cheapest way to get started to play around the language?
1. Blackberry
2. iPod
3. Android

Learn HTML5 and you can build apps that can work on all platforms such as IPhone/IPad, Android and Blackberry. You can just build a mobile version of your site such as mobile.mysite.com. You can then choose to implement the server side with the language of your choice/familiarity.

The path of least resistance and also of lowest cost for you is Java development for Android. Only problem, you don't seem to have an Android phone. Though i'm sure you can pick up a used one cheap.
Why: The Eclipse IDE is free, there are free Eclipse plugins available from Google for Android dev, there's no annual dev cost like with iPhone/iPad development

In my opinion, you should start with an Android phone. You will be able to write your applications in Java, and test your applications on the device. The iPhone requires that you write your applications in objective-c, and requires developers to be a part of the iPhone Developer's Program in order to run their applications on an actual device (The membership fee is $99/year).
The documentation for the Android OS is superb, and once you have installed the Android SDK with the Eclipse Plugin, you can have a hello world application finished in a few minutes.

Related

How can I develop a game engine that supports android

I am thinking about developing a game engine in which I can make games for android and other mobile platforms and I have no clue for it.I just see tutorials for making game engine just for one specific platform and have not found any tutorials for making a game engine for various kinds of platforms!.please give me some clues for it
I recommend you read Game and Graphics Programming for iOS and Android with OpenGL ES 2.0, if you really want to make game engine for Android. His projects sample is too old and written on Eclipse (which is deprecated by Google for Android development), it take me a lot of time to convert his old project to Android Studio. His source code is very small but run smoothly on new devices. His project also include iOS XCode project too, but also some minor modify to migrate older XCode to newer. Two Android and iOS projects sharing ~ 95% C source code (truly cross-platform) and some platform code (Java for Android and Objective-C for iOS but it just only ~ 5%).
I am also recommend you consider use OpenGL ES graphic API for cross-platform game engine instead of using multiple graphic API, because you can use Google ANGLE project to convert OpenGL ES graphic API to native API for other devices like DirectX (Windows PC, Windows Phone), Metal (MacOS, iOS), Vulkan, Desktop OpenGL just one code base. The most successful game engine base on OpenGL ES API is Godot Engine. One of the most the popular project using ANGLE is Google Chrome.
In 2014, Apple announce they deprecated OpenGL ES for their Metal API (but I am tested OpenGL ES project still run on new iOS 13), so only choice if using OpenGL ES is ANGLE. If you want to follow ANGLE Metal you can follow here
Initialize when Microsoft create Windows Runtime (Windows Store, Windows Phone) is just support DirectX, but they also create tutorial for ANGLE to convert OpenGL ES to DirectX, see tutorial here

How to preview site on mobile emulators

Hi I am developing a mobile version of my WordPress site using WP Touch Pro, are there any good emulators so I can see the results on different platforms?
yup:
http://www.electricplum.com/dlsim.html
will show you ipad and iphone simulations.
If you're on a Mac, you can use the free iOS SDK which includes an iOS Simulator. Android also has one; it takes a few extra steps to setup, but it's also free and cross-platform. Blackberry has one as well, pretty much all platforms do. I develop mobile sites all the time and these are the tools I use, and they're invaluable.
This has a few different emulations available: http://mobiletest.me/
This is a great extension for chrome , User-Agent Switcher for Chrome

Most popular mobile platform to develop on?

This question may not directly relate to programming. I have noticed that the technology of today has gone mobile. I want to go mobile with it. What is the most popular mobile OS?(excluding iPhone OS. Sorry, I don't have a Mac to develop on) Some choices could be BlackBerry OS, Windows Phone, Symbian OS, Android OS, etc. I want to make and sell applications for a mobile OS.
If you have Java experience, learn Android. It's becoming widely popular next to the iPhone. Although, I cannot prove that it is the most popular mobile platform to develop on, but it's popularity is increasing.
If you are interested in publishing an applcation for Android you would need to signup on the Android Market.
It would also be wise to read the Android Market Developer Distribution Agreement so you can learn about processing payments, fees, and any other aspect when publishing paid apps.
One thing to throw in the mix while deciding this is the percentage of handsets having a given platform in your target market. Iphone and Android seems to be the platforms for the future, their adoption is going to increase. But if your target market, say India has a significant number of J2ME supporting handsets, then it would make sense to start on J2ME. This aspect needs to be researched and factored in while making your decision.
Also if you design carefully it possible to support multiple platforms, say, Android and BlackBerry since both are Java based.
Difficult question.
While Blackberry detains the biggest share on mobile market, Android is surely coming out fast. I think Windows Mobile isn't at the level of the others, so my choices are BlackBerry and Android. If I have to choose, for the future, Android.
I agree with Anthony, Android is the way to go if you have Java experience. If you have more Microsoft experience, then take a look at Windows Phone 7. It's totally different than all previous Microsoft phone systems and everybody is starting from scratch. It's anybody's guess how successful it's going to be but it does have a big company behind it, and what you learn there will be applicable to many non-mobile scenarios as well whether you choose Silverlight or XNA as your development environment.
A survey by Admob http://metrics.admob.com/2010/03/admob-publisher-survey/
Pretty much explains what you are asking :)

Mobile Device Programming Tools

What SDKs/Tools/Toolkits/IDEs should I download to start programming mobile applications for iPhone, Symbian and BlackBerry from within Windows platform?
And from where can I download them?
For the iPhone platform, your current option is to become an iPhone developer, use the iPhone SDK and develop on a Mac. The IDE you will most likely use is XCode and the language of development will be Objective-C.
The Mono project seems to be developing an alternative to this in the form of the MonoTouch framework. Using this framework you can develop your iPhone applications in C# using MonoDevelop and they will be compiled to native iPhone applications; however, you still need the iPhone SDK and you still need to develop on a Mac. This framework is in closed preview at the moment, though.
For Symbian, it used to be the case that you needed to develop using the C/C++ libraries provided by the Symbian SDK but now you have the choice to develop in C++ using the Qt for S60 toolkit (I should note that it is still a technical preview).
Depending on what you are trying to build, you might want to develop J2ME applications which will work on all Java-enabled phones (thus you won't be limited to just the S60 platform). You can develop such J2ME applications using the EclipseME plugin for Eclipse.
For Blackberry, the default development environment is the Blackberry JDE. However, I hate the user interface on that tool and (for me at least) the usability leaves a lot to be desired. However, you have an alternative: There is an official Blackberry JDE plugin for the Eclipse IDE that makes developing Blackberry applications a joy (well not so much :) but still makes it really easy)
In case you are interested, you can develop Windows Mobile applications in C# targeting the .NET Compact Framework using Visual Studio (I think you can use the Express Edition, which is free).
Then, there is the Android platform. The default development environment for that platform is using the Android Eclipse plugin and developing in Java.
Hope, it helps.
iPhone sdk
Symbian
Blackberry
For Symbian, I would recommand Qt.
Moreover, you can use it for Windows CE based mobile.

Mobile devices for developers

I need to develop some programs for mobile devices but haven't decided the platform to build upon. I'm looking for Palm or Pocket PC devices that have Touch screen and Wi-Fi connection and are cheep because I'll need to buy several of them.
I don't really need camera, mp3 players, video players, pdf readers or anything else since the apps are going to be simple data collection to feed via wireless to a server database.
I'm proficient with C and C#. I could learn Java if I had to.
What devices do you recommend? Linux devices maybe?
PS: Changed the title because I don't want a flamewar between platforms. Please, don't answer with Windows Mobile sucks/rules. I'm looking for devices instead.
Thanks
Windows Mobile
It supports C#, and Visual Studio comes with the mobile SDK. So if you know C# you probably already have the tools you need. And in spite of the iPhone/iPodTouch buzz, the Windows Mobile deployment is still 10X greater.
In order of preference
Neo Freerunner
Maemo & the N800 (cheap)
Beagleboard
If you are comfortable with Visual Studio then programming for windows mobile is extremely easy. The SDK for mobile comes with emulators for all the latest and popular versions of windows mobile- and you can even debug on teh device itself using a USB cable.
On windows mobile you have a choice: Develop a .Net application or develop native (likely MFC based). Either one gives you a great development environment.
As far as iPhone development goes- you would need an apple computer to install and use iPhone SDK- and you can't run an iPhone app on your phone. You would have to go through the process of getting it registered with iTunes for you to install your own apps on your own phone!
When I first started playing with mobile development I had a few questions:
Can I develop using my favorite IDE- Visual Studio. Will it be as easy as developing a desktop app: yes.
Will I be able to access the internet from my application without 'unlocking' or in some other way enabling the phone that was not intended by the service provider? yes.
Will I be able to access device specific functionality such as GPS easily? Is there good support for doing so within the API? Yes.
You should probably target the Windows Mobile platform. The Palm platform is rather archaic and no longer widely used. The development environment is also rather spartan, while Microsoft has full IDEs available for Windows Mobile development. You might also consider the iPhone/iPod touch platform - I have a feeling the number of devices will multiply at an exponential rate and I've heard that developing applications is much easier due to the completeness of the system stack.
You should probably at least evaluate the Apple iPod Touch. It certainly meets your basic "touch screen + WiFi" spec, and your users presumably won't object to all the the other nice features that will come along for the ride.
I don't know what your cutoff for "cheap" is, but $299 for the base model seems pretty reasonable for a high-quality touch screen and WiFi in a pocketable device.
Windows Mobile and CE used to suck, really, really badly. These days however it's definitely passable and worth checking out, especially if you code C#.
Just remember that it is the baby brother of the full framework and has nowhere near enough toys and throws a lot of NotImplementedExceptions. :)
Blackberry publishes its SDK on its web site. Its apps run J2ME, so with some Java experience it shouldn't be too difficult to get started. They also give you an emulator. Disclaimer: I have no experience in writing Blackberry apps, but I looked into it once.
I would not recommend a PalmOS based handset. I have written code for PalmOS and it's about as painful as writing raw Win32 code in C. Since Palm has switched its high end handsets to Windows Mobile, PalmOS will just remain stagnant and only run on the slower, less capable hardware.
If I were to write a mobile app, I'd agree that Windows Mobile is worth checking out.
It all depends on the users who you are targeting at, If you are looking for a wide market then you should be fine with J2ME/Blackberry . However most of them lack the touchscreen and wifi features ( The HTC range of phones [WIFI/TouchScreen/Windows Mobile] have a JVM built with it),so it would work on most of the Windows devices also.
If you are making a more niche product, moving with the current buzz 'iphone' will be good . Windows Mobile is also worth checking out
The best option here would be the Neo Freerunner, with that device you can build a dedicated unit were every aspect is made especially for you're needs. The Freerunner is WiFi enabled, and has a touch interface. If you use the Qt SDK, a lot of the work is already done for you. It comes complete with emulator, as a Live linux cd. You can run in a WM, such as wmplayer. Everything is included.
I'm not gonna lie, it will take tweaking. But the final product would be really nice and intuitive.
Looking at Windows Mobile devices, your requirement of touchscreen pretty much sets your pricing at the higher end of the spectrum. You'll get those things you say you don't need just because of that.
Here's expansys's selection of touchscreens.
Mobdeal is a handy one too as that effectively filters all phones by features.
I've developed against the HTC TYTN 2, HTC Touch Diamond and randomly a PSION Teklogix Ikon
There's generally very little difference between these models, some manufacturers have SDKs that can help sometimes.
I think your cheapest option will probably be something like getting HTC TYTN 2s on ebay. They're pretty old now (hence cheap) but have Wifi, camera, touchscreen, qwerty keypad all the things you seem to be after.
you can target iPhone "touch" platform with Apple's iPhone SDK. the development environment requires a Mac, but you can get the entire IDE + tool chain + excellent debugging and profiling tools for free. And the free documentation is top notch.
As a registered iPhone developer, it is free (no cost) to target the simulator, which is sufficient for most learning and development you'll likely need to up front.
To target the actual hardware device (and up to and including release/selling your app on the Apple's AppStore) is only $99/yr. If you got an iPod Touch for your hardware target, most of the SDK applies and you are not tied into a service contract for an iPhone.
iPhone app development environment is in Objective-C, but it is a really productive, object-oriented environment so do not concerned that that may be a language you are unfamiliar with.
If you decide that your mobile app(s) would be better suited as webapps, the iPhone/iPod touch platform again is an industry leader in this space, and you have the additional benefit or being able to target other mobile platforms (and not necessarily be tied to one mobile SDK).

Resources