How to get started developing for WM? - General Questions and Answers

I've done quite a bit of software development in my career, though very little has been recent, and none has been on a mobile platform. But I find myself in a situation where it would be useful if I could write a simple web app for Windows Mobile that for the most part just wraps a UI around a set of web services calls to an external server.
So, some questions:
1) What languages and/or dev environments would best support this kind of effort? In other words, how can I make this simple rather than difficult?
2) Are there free, open-source tools that would support this?
3) Are there useful open-source libraries that would simplify my task?
4) Is Java an option?
I imagine that there are several, perhaps even many, options that may be open to me. But I really have no idea where to start. So if anyone here can point me in a useful direction, I'd greatly appreciate it. Thanks!

This stuff used to be in a sticky at the top of the Dev/Hack section, but they have had a massive sort out and put it all in the wiki instead.
Start here:
http://wiki.xda-developers.com/index.php?pagename=Development Tools

Related

Phone Programming Help

Firstly Mods sorry if this is the wrong section I didnt want to clog up the Development and Hacking forum. Please feel free to move this to the appropiate place.
......
I've got an idea for a little calculator app with specific functions which I know will go down very well with independent store owners. I've programmed a very crude prototype for Windows using my very very simplistic Visual Basic skills.
The problem is for this app to be useful I need it to run on peoples phones as a third party app so as its portable, and here's where the idea totally falls flat, with all the different platforms like Windows Mobile and Symbian i'm just wondering what would be the best platform to go for and if its possible to create a version that might work across a wide variety of different phones maybe using Java.
My ideal target audience will more than likely be Nokia, Samsung and Sony Ericsson users as opposed to Windows Mobile users.
Would it be just easier to commision different versions and how much should i expect to pay for a basic auto calculation app. I'm thinking of commercially selling the product is there any disadvantages of getting a third party to program the application?
All advice is appreciated and thanks in advance for any replies.
Well, I am not very familiar with the platforms you listed as preferred, but from what I know you will have to go with Java to accommodate them all.
It is still likely that you may need several versions if you want to properly accommodate the form factor of different phones.
There is no such thing as a best platform for a calculator app, which does not have specialized hardware requirements. Unless of course you are planning on a graphical interface so screen size or touch screen are major considerations.
If you really want someone to program for you for one time only, you may be interested in this site: www.rentacoder.com
As for price there are several considerations:
1) How much stuff does the app really do? How robust is it?
2) Are there other apps that preform same or similar functions and how much do they cost if at all? A quick search of the net may reveal that your idea has already been implemented as a freeware.
3) Will your software have a home? Basically when distributing commercial software you have to take in to consideration such things as registration, technical support for your customers and future updates.
Sites like www.pocketgear.com will let you easily distribute your app for as little as 5$, but many customers are unlikely to pay larger sums for an app that does not even have its own web site, let along a number you can call if you run in to trouble.
Thanks that was very helpful, i appreciate all the info.
Is there anybody with specific knowledge about programming for the other platforms?

Would Unity be the best for myself? Or another route?

Hello,
I've been doing some research on the many, many different routes I can go with Android development, and I'm hoping someone might be able to help narrow down my choice. My experience is currently web related, PHP/HTML/CSS, with knowledge of intermediate Javascript, etc.
I'd like to create a very similar game to Football Manager, but less ambitious. For those that aren't aware, it's a simulation game where you're the manager of a soccer team.
My ambition is to keep it very simple, dumbed down. No need to watch the games, pretty much all text with simple graphics for some things.
My issue is, trying to find a place to start. There's literally a lot of different routes, and I'm overwhelmed. Do I use HTML5? Java? One of the programs like Unity, Construct? PhoneGap?
For my specific game, and idea, what would be your best suggestion on what to use?
Thanks in advance.
you can try CocoonJS. it's easy.
It's html5 fraemwork.
CocoonJS is a technology that helps HTML5 developers publish their web-based games and apps in the most important mobile and web stores with no code changes and with all the advantages of native development.
Using CocoonJS, a single code base is enough to publish a game or app natively on more than 10 stores. Best of all, with no installations thanks to our cloud-based platform.
HTML5 is finally ready for cross-platform app and game development!
Learn more: http://ludei.com
But now it's in open beta.
All free, but all Extension only for premium users.
Premium account granted for free, if you have nice idia/project.
The answer is "it depends"
A couple of questions...
1. Will it only be for Android? or are you also planning to push it to iPhone?
2. Will the interface be more like a app (eg. gmail, calendar, utility apps) or more like a game (immersive, completely different interface) ?
3. Will there be a lot of interaction? or mainly consuming information?
pyko said:
The answer is "it depends"
A couple of questions...
1. Will it only be for Android? or are you also planning to push it to iPhone?
2. Will the interface be more like a app (eg. gmail, calendar, utility apps) or more like a game (immersive, completely different interface) ?
3. Will there be a lot of interaction? or mainly consuming information?
Click to expand...
Click to collapse
1. Android to start, possibility of iPhone in the future.
2. Straight forward, more like an app, nothing too pretty, more statistical.
3. Mainly consuming information, lots of behind the scenes work.
In that case, I would say go for a mobile friendly web-based app, as opposed to a native app. So this would mean HTML/CSS/JavaScript.
Reasons are:
You want to eventually be on both Android and iPhone. Since you're app is more "app like" if you go native, you'll essentially have to write 2 separate apps to have good user experience (Android and iPhone have vastly different experience guidelines). WIth a mobile-friendly website, you'll satisfy both with one code base
You've already got experience in HTML/CSS/Javascript - definitely a big win!
Since your app will mainly be information consumption, it sounds suitable for a website.
When done correctly, a mobile-friendly website can still be a great experience to use
A couple of things to be aware of...
Don't try and imitate the native UI on the mobile-friendly website. It is a website, not a native app! Users are fine if it doesn't behave like a native app (afterall, they would've just reached your site via the browser). In fact, if you make the website behave sorta like a native app, it might confuse users more. Best direction is to have a good, solid ,easy to use and understand UI. (Be wary of the Uncanny Valley)
Unlike laptops/desktops, mobiles generally are less powerful, so you'll need/want to optimise performance. Make sure the website runs fast & smoothly (ie. optimise resource downloading, minimise/optimise javascript animations etc). Be aware that most phones have a 'click delay' (to detect swipes/drags etc) so you'll want to use something like fastclick to eliminate this.
Remember that on a mobile device your user will be using their fingers (and not a mouse) to click/interact with your website. So make sure tap targets are nice and large.
Finally .... test on a real device! Chrome dev tools etc to simulate phone screens is great for dev, but actually using your website on a mobile will reveal many design decisions that might need to change.
This might sound like a lot to think about, but I think given what you've said about your idea, in the long run, it will be more time efficient. (there is probably a equally long list of things to think about when developing a native app!)
Good luck with your idea
pyko said:
In that case, I would say go for a mobile friendly web-based app, as opposed to a native app. So this would mean HTML/CSS/JavaScript.
Reasons are:
You want to eventually be on both Android and iPhone. Since you're app is more "app like" if you go native, you'll essentially have to write 2 separate apps to have good user experience (Android and iPhone have vastly different experience guidelines). WIth a mobile-friendly website, you'll satisfy both with one code base
You've already got experience in HTML/CSS/Javascript - definitely a big win!
Since your app will mainly be information consumption, it sounds suitable for a website.
When done correctly, a mobile-friendly website can still be a great experience to use
A couple of things to be aware of...
Don't try and imitate the native UI on the mobile-friendly website. It is a website, not a native app! Users are fine if it doesn't behave like a native app (afterall, they would've just reached your site via the browser). In fact, if you make the website behave sorta like a native app, it might confuse users more. Best direction is to have a good, solid ,easy to use and understand UI. (Be wary of the Uncanny Valley)
Unlike laptops/desktops, mobiles generally are less powerful, so you'll need/want to optimise performance. Make sure the website runs fast & smoothly (ie. optimise resource downloading, minimise/optimise javascript animations etc). Be aware that most phones have a 'click delay' (to detect swipes/drags etc) so you'll want to use something like fastclick to eliminate this.
Remember that on a mobile device your user will be using their fingers (and not a mouse) to click/interact with your website. So make sure tap targets are nice and large.
Finally .... test on a real device! Chrome dev tools etc to simulate phone screens is great for dev, but actually using your website on a mobile will reveal many design decisions that might need to change.
This might sound like a lot to think about, but I think given what you've said about your idea, in the long run, it will be more time efficient. (there is probably a equally long list of things to think about when developing a native app!)
Good luck with your idea
Click to expand...
Click to collapse
Thank you very much for your help, I appreciate all the information. One last question on my end.
I'm assuming the development tools would be the same as a usual website (ie. In my case, Dreamweaver?). If you're familiar with Game Dev Tycoon, would a layout /similar style of interaction game b, e capable using only Dreamweaver, or is something else needed?
No worries, more than happy to help
I would actually suggest not using Dreamweaver as for the mobile website, you'll really want to be as lean and minimal as possible. From what I recall, Dreamweaver can add quite a bit of 'cruft' to your code.
I would suggest a standard text editor (recommend: http://www.sublimetext.com/) as that would allow you to have complete control over your code, what you include/exclude, what goes where etc. The mobile site will require that extra attention as you really want to make sure it runs smoothly on the mobile.
In terms of quick dev iteration (making sure the site looks correct) you can use the chrome developer tools (https://developers.google.com/chrome-developer-tools/) which allows you to fake the user agent/screen size etc on your browser. Though nothing beats occasional testing on a real device - just to make sure you're on the right track.
Had a look at Game Dev Tycoon and I would say for something as involved as that (lots of interaction, animations etc) it's better to go down the native route.
pyko said:
No worries, more than happy to help
I would actually suggest not using Dreamweaver as for the mobile website, you'll really want to be as lean and minimal as possible. From what I recall, Dreamweaver can add quite a bit of 'cruft' to your code.
I would suggest a standard text editor (recommend: http://www.sublimetext.com/) as that would allow you to have complete control over your code, what you include/exclude, what goes where etc. The mobile site will require that extra attention as you really want to make sure it runs smoothly on the mobile.
In terms of quick dev iteration (making sure the site looks correct) you can use the chrome developer tools (https://developers.google.com/chrome-developer-tools/) which allows you to fake the user agent/screen size etc on your browser. Though nothing beats occasional testing on a real device - just to make sure you're on the right track.
Had a look at Game Dev Tycoon and I would say for something as involved as that (lots of interaction, animations etc) it's better to go down the native route.
Click to expand...
Click to collapse
Thank you again. I appreciate all your help.

From Desktop to Android Development

From Desktop and Web to Android Devices : I Need Help
For over twenty years I have developed apps using Borland's Delphi and BDS development tools. I now want to migrate a subset of that functionality to Android devices ... but need help getting over the learning curve hump.
The general particulars are:
1. Master-Detail, content management. Multiple detail data tables for each master record.
2. Image gallery. See all images in the gallery or only those images which have been linked to a master record.
3. Taking a pic and linking it to a master record.
4. Ability to query for local businesses ... such as "Find <business name> within <x miles> of my current GPS location.
I currently have Eclipse and the latest ADK tools installed. Also, I have some Java experience.
Is there a place I can go to find a baseline source code framework that satisfies these requirements and demonstrates how to store and manage the master and detail data and links?
Any help would be greatly appreciated. I can be contacted at [email protected]
Many thanks, from an old dog trying to learn new tricks.
Patrick
In my opinion, the best way for not a game development is using Xamarin platform. Xamarin is pretty good, but it's not a free.
All I can provide is the hard way : stick to a place like stackoverflow.com + the android official documentation.
You'll find tons of content relating to your question ; I'm sure about that.
VirginiaFarm said:
From Desktop and Web to Android Devices : I Need Help
For over twenty years I have developed apps using Borland's Delphi and BDS development tools. I now want to migrate a subset of that functionality to Android devices ... but need help getting over the learning curve hump.
The general particulars are:
1. Master-Detail, content management. Multiple detail data tables for each master record.
2. Image gallery. See all images in the gallery or only those images which have been linked to a master record.
3. Taking a pic and linking it to a master record.
4. Ability to query for local businesses ... such as "Find <business name> within <x miles> of my current GPS location.
I currently have Eclipse and the latest ADK tools installed. Also, I have some Java experience.
Is there a place I can go to find a baseline source code framework that satisfies these requirements and demonstrates how to store and manage the master and detail data and links?
Any help would be greatly appreciated. I can be contacted at [email protected]
Many thanks, from an old dog trying to learn new tricks.
Patrick
Click to expand...
Click to collapse
The offical Android Tutorials are a great place to start.
I've found that if you start by trying to build something that you have in the past but target it at Android you'll learn a lot about the framework, its quirks, and how to do things maybe a little bit better than what you'll sometimes find on various sites. I second that Android's docs and tutorials are a great place to start, but you could take them and piece something together right from the start. It's also a great way to see how your project will work and perform on a real device running the Dalvik or ART VM FWIW, you'll notice that things will perform MUCH better with ART.
If you are a window coder, using java or c# is easy for transform, so download android studio or xamarin, open examples and do again.
If sqlite (default in android is not enough with you) you need create app with client-server app

[Q] Which Tool Is Right for Me?

I'm wondering, based on experience witch of these people would recommend for mobile app development. (Please mention which of these you actually have experience using.)
I'm an "old school" developer and am proficient in PHP/PERL, HTML, CSS and Javascript. I don't have time to learn a new language like C# and I refuse to use Microsoft's tolls (like .NET, Visual Studio, etc.) but I would spend the time maybe to pickup up RUBY (or maybe Java) if enough benefit was there in the associated mobile app development tool.
I want as close to native as possible with 90%+ cross-platform solution, meaning, 5-10% of the source code may differ due to differences in platform. I will only be developing for Android and IOS (sorry Windows) but may develop for Windows Down the road. Some apps I may develop may be enterprise class that need to get remote data from SQL Server, etc. I have done research and narrowed down my selection and am looking for further insight from those that have actually used these tools. Things that are also important to me include:
- Low cost (I can't afford to pay $100+ a month in fees)
- Good/Large Developer Community
- Good Support from Maker (good roadmap with improvements, bug fixes frequent, etc.)
PhoneGap - This seems like the most popular but it sounds like the "quickest" route for most web developers that are familiar with HTML and Javascript/CSS but to me it sounds like I might want something that is closer to native being that my primary core knowledge has always been as a coder first, and a web developer/designer second.
Appcellerator Titanium - This seems like the other most popular tool that claims to compile so the app uses the devices native controls (via Titanium API) instead of essentially an HTML page masquarading as an app (like PhoneGap) My gut says this one suits my situation better than Phonegap. Why do people use PhoneGap instead of this, because it's easier for non-programmers?
RhoMobile Rhodes - I am wondering how this compares to the two above assuming I learn RUBY on Rails.
Telerik Icenium (now called AppBuilder) - This one I have found the least discussion about.
I just ran across Codename One too which sounded intriguing as would require me to learn Java.
It seems most everyone (that isn't doing native) is using PhoneGap or Titanium and the second two are lesser known so I'm having a hard time finding people that has at least some brief experience using all four or five of these.
Any insight is greatly appreciated.
jazee said:
I'm wondering, based on experience witch of these people would recommend for mobile app development. (Please mention which of these you actually have experience using.)
I'm an "old school" developer and am proficient in PHP/PERL, HTML, CSS and Javascript. I don't have time to learn a new language like C# and I refuse to use Microsoft's tolls (like .NET, Visual Studio, etc.) but I would spend the time maybe to pickup up RUBY (or maybe Java) if enough benefit was there in the associated mobile app development tool.
I want as close to native as possible with 90%+ cross-platform solution, meaning, 5-10% of the source code may differ due to differences in platform. I will only be developing for Android and IOS (sorry Windows) but may develop for Windows Down the road. Some apps I may develop may be enterprise class that need to get remote data from SQL Server, etc. I have done research and narrowed down my selection and am looking for further insight from those that have actually used these tools. Things that are also important to me include:
- Low cost (I can't afford to pay $100+ a month in fees)
- Good/Large Developer Community
- Good Support from Maker (good roadmap with improvements, bug fixes frequent, etc.)
PhoneGap - This seems like the most popular but it sounds like the "quickest" route for most web developers that are familiar with HTML and Javascript/CSS but to me it sounds like I might want something that is closer to native being that my primary core knowledge has always been as a coder first, and a web developer/designer second.
Appcellerator Titanium - This seems like the other most popular tool that claims to compile so the app uses the devices native controls (via Titanium API) instead of essentially an HTML page masquarading as an app (like PhoneGap) My gut says this one suits my situation better than Phonegap. Why do people use PhoneGap instead of this, because it's easier for non-programmers?
RhoMobile Rhodes - I am wondering how this compares to the two above assuming I learn RUBY on Rails.
Telerik Icenium (now called AppBuilder) - This one I have found the least discussion about.
I just ran across Codename One too which sounded intriguing as would require me to learn Java.
It seems most everyone (that isn't doing native) is using Cordova/PhoneGap or Titanium and the second two are lesser known so I'm having a hard time finding people that has at least some brief experience using all four or five of these.
Any insight is greatly appreciated.
Click to expand...
Click to collapse
Both Phonegap and Appcelerator compile into a native package containing a mix of native and javascript and with both you develop your code using Javascript. As you've pointed out, one of the key differences is that Appcelerator will use the native device OS widgets rather than web widgets. In simple terms the layout is abstracted into an XML format which is then rendered into native equivalents during compilation for each of the platforms.
Depending on your application, native widgets may be important, or not. For example if you're developing a game then it could actually be advantages not to use the native widgets and have an essentially identical look and feel across all device platforms and screen aspect ratios.
The other difference is that Phonegap is free, (though their optional build service is not). Appcelerator is priced on a monthly subscription, but you also get some cloud features included in that.
Other popular cross platform tools to check out: Xamarin (native widgets, C# development, non-Free), ReactJS (native widgets, Javascript development, free-open source)
You can also try using Ionic and Cordova frameworks, They support cross-platform development and in my opinion have good documentation support

Cross-Platform vs Native

Hey,
I'm a developer and I want to start with app development. No games, just productivity stuff. Without experience, I would tend to native apps, because you can use all api's, designs etc. I think cross platform frameworks is just a hype like java for web. HTML and CSS are the best choice for web and nobody is talking about java in web-dev. Now, I have a feeling that you're trying to use this technology in Apps because html5 and css3 a fancy. But this is just my opinion and maybe I'm wrong. As I mentioned, I do not have any experience in app-dev. Therefore, I want to ask you, because you have the experience.
Are cross platform frameworks a great choice to develop apps for iOS, Android and Windows 10 (Mobile)? Is it really time saving and do I have the same or similar possibilities? Or is it better to maintain three different platforms? Maybe the time effort isn't so much higher. I don't know. How high is it? Should I start with a cross platform framework and switch later to native apps, or is it better to start with native apps?
I hope you can share your experience with me. It is also great if you link something that reflects your opinion.
Thanks
neon
"nobody is talking about java in web-dev"
Not true Many pages and server side app are created in java. JEE, JSF etc. Problem is hosting for page. Hosting for PHP is cheaper and more popular. That is why PHP is more popular than Java in web-dev.
Anyway, in mobile platform, in my opion, better way is native apps. Cross platform frameworks are great, but only for some of the types application. Most applications can be made faster and look prettier if they are native. Many things is hard when you use crossplatform, and sometimes development takes longer. Much depends on type of application and requirements. Of course it's only my opinion. Many people think differently.
It depends. First of all it is important to know which API or librarys you want to use. If you have some intensive tasks or calculations you should go with native apps because they are often much faster then hybrid-apps written in JavaScript. If you don't have much intensive tasks and you have a completely new idea and want to make money with it you shoud go with hybrid-apps because it is a huge plus to have an App for Android AND iOS.
Thanks for you responses.
@Asmok78
You are right. PHP is more popular because it is cheaper.
Asmok78 wrote that most applications can be made faster and it depends an the application. spcialx wrote something equal. So, as an example, all my ideas are based on a client server architecture where users can sync there local data with a server to work collaborativ. As an example it could be an app for all three platform (iOS, Android and Windows 10(Mobile)). A user can manage a tasklist and share tasks with other users, or you have a project and one user can assign tasks to other users.
I guess it will be faster to get a first working app with a crossplatform framework. But I also guess, that in the long run it will be better to dev native apps. So why not start directly with native apps?
ne0n said:
[...]
I guess it will be faster to get a first working app with a crossplatform framework. But I also guess, that in the long run it will be better to dev native apps. So why not start directly with native apps?
Click to expand...
Click to collapse
Your assumption is completely right.
I'm working on a hybrid app right now. While it can be tempting, as soon as you get out of common features and patterns you can run into all sorts of problems and I found some quite hard to debug and solve. In the end I've busted all my deadlines. Performance are just OK for most uses, but still not comparable to native. All in all it depends on what you are trying to do, cross-platform apps might be ok for some use cases, but native apps are well worth the extra effort.
I think you should go native for apps. But not for games.
Sent from Tapatalk. Try LucidPod - lightweight podcast player.
Android NDK is there for performance reasons. If you plan to create something serious, then dedicated development cycles for each platform may be the obvious choice.
with web app, you can create app with nice and easy ui, can communicate with system api via plugin but sometime you need custom there control, and you need experience with native app , if it basic, you can do with only web app.
hybrid app is slower than native, only for small app.
Asmok78 said:
"nobody is talking about java in web-dev"
Not true Many pages and server side app are created in java. JEE, JSF etc. Problem is hosting for page. Hosting for PHP is cheaper and more popular. That is why PHP is more popular than Java in web-dev.
Anyway, in mobile platform, in my opion, better way is native apps. Cross platform frameworks are great, but only for some of the types application. Most applications can be made faster and look prettier if they are native. Many things is hard when you use crossplatform, and sometimes development takes longer. Much depends on type of application and requirements. Of course it's only my opinion. Many people think differently.
Click to expand...
Click to collapse
Yep, I'm a java web guy. Tomcat, Struts 2 and JSP for me (though I'm slowly switching to Spring instead of Struts). The sheer power of Java, the stuff you can do, vs PHP (disclaimer: I coded PHP for 10 years professionally and now hate it, especially with the advent of Wordpress and Drupal) is absolutely staggering. Add to that a tonne of amazing libraries one can just plug straight in and you get a really useful bit of kit. Sorry, off-topic.
So yeah native is best. I work on a timesheeting/expenses solution for big mobile telcos in the UK and we looked at some cross-platform solutions at first, with Xamarin getting a decent run out but in the end we concluded it just wouldn't do the job, and went native. The issue really was that you'd end up with an app that wasn't quite right on either platform, and had to really write some nasty hacky stuff to make anything that took advantage of the advantages or preferred style of a particular platform. It just wasn't worth the effort in the end.
With Unity3d you can build for like 20 platforms.
Cross-Platform vs Native | Development Tools
1. Native apps are usually developed to work on a single mobile platform by using the native programming language mainly used for user interactions.
2. Cross platform requires different platforms for development are used for PhoneGap, Titanium, and Xamarin by using HTML and JavaScript mainly used for iOS, windows, and Android.
"no one is discussing java in web-dev"
Not genuine Many pages and server side application are made in java. JEE, JSF and so on. Issue is facilitating for page. Facilitating for PHP is less expensive and more mainstream. That is the reason PHP is more well known than Java in web-dev.
Anyway, in portable stage, in my opion, better way is local applications. Cross stage systems are incredible, yet just for a portion of the sorts application. Most applications can be made quicker and look prettier on the off chance that they are local. Numerous things is hard when you utilize crossplatform, and infrequently improvement takes longer. Much relies on upon kind of utilization and necessities. Obviously it's lone my sentiment. Numerous individuals think in an unexpected way.
whats the end goal/how big is your buget?
for example: business apps, they're not that heavy on interactions/animations - you may be better off with cross platform as it will generally cost less to create it that way
if heavy on interactions/animations: native would be a better choice and may cost more because it may be developed for multiple platforms, which in turn would make it more expensive.
Hi,
If you ask me I will go with the cross platform if I'm building the app from scratch as it's easier to make any changes and most importantly saves a lot of time.

Categories

Resources