We're going to build survey apps for rural development (in India) using cellphones, including some Nokia and Android devices. For building and capturing user info, we're looking at OpenXdata (which is open source J2ME solution) and exZact, (which works on iPhone/iPod Touch). We're also looking at ODK.
What tools/framework have other users used for the same ? Did you use cellphones or custom devices? What phones worked for you ? What are the pros and cons of each?
P.S : We're looking to develop for devices in the $100 category so that a big number of such devices can be deployed in the field cost effectively.
I found an open source solution (J2ME, FLASH and J2EE) from Nokia for
mobile
form creation
server side app
respectively.
http://www.nokia.com/corporate-responsibility/society/nokia-data-gathering/english/00-index
If you need to use J2ME phones, I can highly recommend OpenXData. I worked on the project for many years, and have used it for many projects - some of which had nearly 1000 data collectors. I found the server very stable and never experienced any data loss.
If you wish to use Android phones, then I'd recommend ODK collect, which still has a very active community.
If you have more questions on OpenXData, you can reach out on our mailing list.
Related
I want to develop a SmartTV application for the GoogleTV platform and i've been browsing trough the GoogleTV Guidelines (https://developers.google.com/tv/android/).
However, i don't want GoogleTV to be my only platform. I also want the same app to work on devices like Samsung SmartTV and/or LG SmartTV.
But do the guidelines from Google conflict with Samsung guidelines and does the code of my application need a lot of rework to work on other devices?
I'm editing my answer. I just checked the Samsung website and, I'm happy to say, they threw out all the junk.
They use to have a number of different, non-interchangeable, coding languages. And none of them really worked on the TV's of the other manufacturers either. This is most likely the reason why few applications were ever developed for those platforms.
Now they are supporting basic javascript. So, you have the opportunity to build yourself a TV web page and load it up as an application on Samsung and potentially run it from the Google-TV browser. However, I would verify whether your application requires specific HTML5 features (such as offline support) that may not be implemented in the Android-like browser version running on Google-TV. Having said that, you can always build an app that loads locally on Samsung and runs from a remote server on Google-TV?
... for some historical perspective on how we go to where we're at you can continue reading....
The implication of each manufacturer having their own unique OS creating developer fragmentation was probably predictable to them but they were likely working in a panic. After they became aware of the Apple TV when the first patents were make public in 2008 they understood the longer term impact if Apple provided hundred of thousand of applications worth of content and they had nothing to compete. So they got together and decided on a standard they would implement that would provide a non-fragmented solution allowing any app to run on the TV's of any supporting manufacturer. AKA: they got it right.
In 2009 a good number of them announced support for the Yahoo Connected TV standard. However, by 2010 the development framework, app store, etc that was promised had not materialized. This is likely when they all went in their own direction (although you can still buy Yahoo Connected TV sets from Samsung, Sony, LG, Vizio, and Panasonic today).
With the implementation of the Google-TV Market and the ability of developers to transition existing apps to Google-TV apps with only 20% or so of the effort of creating new (thus lowering the cost and supporting the business case for a TV version) that they have a solution that meets their original requirements.
Now, there's certainly going to be a little 'bitten once twice shy' coupled with revenue sharing discussions and perhaps the impact of Google being a hardware manufacturer (Motorola Mobility) but, at the end of the day, the inevitable is inevitable. They either take Google-TV or create their own, very close, must run existing applications, version of Android.
PS: I didn't look at the other manufacturers site.
For my understanding core components like the Player and Remote Control Management are platform specific.
You would need to use a configuration file and implements these components independently for each platform.
Alternatively you can use some cross platform SDK.
Searching on Google for "smart tv app development" I found out:
Joshfire Smart TV SDK
http://www.joshfire.com/products/
Works on Google TV and Samsung
But not on LG
Mautilus Smart TV SDK
http://www.mautilus.com/knowhow/smart-tv-application-development/
As written in their website it covers
LG Netcast 2012
Samsung 2012 / 2013 models.
I hope it can helps.
orangeejs is a new open source project aims to ease the pain of cross platform smart tv app development. The target platforms are latest model of samsung/lg/android/ios.
There is a framework developed by BBC and called TAL. It aims to help you with cross-platform development. All their Smart TV apps were developed using this library so take a look.
First of all if you consider to develop for many TV platforms see the:
https://developers.google.com/tv/web/lib/jquery/
It's jQuery library for Google TV, so you can develop application in HTML/JavaScript just like in Samsung and LG.
Of course there are the differences in key handling, video player, event handling so you will need to develop the framework which cover all this differences.
There are few open source frameworks out there but not mature enough to use it "out of the box".
for example: http://framework.joshfire.com/
You might want to take a look at cloudee-couch which is open-sourced by Boxee. This example/framework is built on top of Spine.js. Base classes take care of key handling, focus, and oauth authentication.
It's not a big deal to make an application for the smart tv platform that supports across the devices. Now the industry is filled with a lot of smart tv app development companies with their unique functionalities and features to offer the customized app as per the business models. FYI I'd suggest you choose the best smart tv app builder from the list. Hope it will be helpful for the video content creators & business owners to stream across the tv.
VPlayed
Zype
Uscreen
Explore the complete list here Ref: https://dev.to/dwarak17/5-smart-tv-app-development-companies-to-develop-tv-apps-in-2021-1584
While both Samsung and LG have proprietary Smart TV systems, they also both support Google TV. If you create an app for Google TV, you'll only have to write it once and it will run on Samsung's Google TV's, LG's Google TV's, Vizio's Google TV's, and Sony's Google TV's.
Although not really a programming question I believe many developers would have come across this and therefore give the best answer.
Currently I am developing an App for iPhone for the organisation I work for. Its close to release and there is heaps of interest when I present it but the occasional question comes up am I going to port it to Android. My answer is I would like to but according to web stats more than 90% of phones hitting our website are iPhones and the other 10% is declining (probably people migrating away from Blackberry, last count was 98% was iOS)
Now if you read the media many people would like you to believe that its a split market between Android and iPhone but this might be just in the U.S where the single carrier for the iPhone has limited its consumer uptake because all the information available to us (at least in my organisation) states otherwise.
I was curious to hear from other people who have looked into these stats both inside and outside the U.S because when I tell the person asking that there is no demand they dismiss it and say its growing, once again contradicting the stats available for our organisation.
I am really interested in Android dev so don't really want to hear that I should just make it to give people an alternative, it's hard to justify to management that I should spend their money to deliver content to 5% of our market. Currently it makes more sense to make a cut down web App rather than an Android App.
Be interested to hear your thoughts. Cheers
Honestly, I would argue it simply depends on your market. For instance, in my location Android users are increasing steadily. It still took us a long time to commit resources for development. Plain and simple, until recently, there wasn't enough return value to develop an Android app. If your Android market is only a small percentage of your market, then the resources would probably better be spent within your main competencies (i.e. for my company, developing more iPhone apps). It is easier to make a presence for a new app or upgrade in a market you are already established in. After creating the Android app, you would need to spend more resources on creating brand awareness, which if you already have a successful iPhone app, wouldn't be necessary if you simply created more iPhone apps. Also, let's be honest, the Android marketplace is a bit of a mess and hard to market on. Don't get me wrong, I have a healthy respect for Android and its capabilities, but unless you can see a return on the app, there is no point in developing it.
Depending on the type of application you are developing, it might be worthwhile to utilize a mobile framework that allows you to easily develop for both devices (plus many others). This is not the solution for all applications, such as those where speed is critical or games, but for many apps it might help. Have you looked at Appcelerator or PhoneGap? Just be careful to do plenty of research and make sure they support all of your requirements before jumping in.
It's difficult to answer your main question because the statistics related to mobile devices varies immensely, especially related to the type of application you are developing. Certain types of users prefer one type of phone and those users typically will use only certain features. For example, BlackBerry users are less likely to download games than iOS users.
For web apps
The approach suggested above is a nice approach because phonegap, appaccelerator or rhomobile do provide a sort of a virtual environment for applications developed in HTML, ruby. However, that might not be sufficient in a number of cases.
One of the approach i have seen developers adopt a lot for native apps
If you have developed your application using C code for the application state machine and lower levels then that code can be ported straight away to Android and be plugged into Android app using JNI technology.
The UI will have to be re-created.
What is the value to your organization of that 5% of customers being able to have a native Android app, versus the company's development time/resource cost?
Now that you've done all the app architecture and design work (including artwork, documentation, etc.) for the iPhone app, will a porting or rewrite for Java/JNI/Android take less development time by some multiple?
I think the most important factor is that if your company have the resources to maintain two version of the app. Would it be more beneficial to maintain native iOS app and a mobile version of the site? Since as you mentioned the usage of non-iOS devices of you website, as a metric lead a conclusion of such already.
As a matter of fact, if you have put most of the logic to the server back-end, writing an android app would not take anywhere longer than writing an iOS app, as long as you've programming experience in Java.
Also contrary to common beliefs, since the market share of Android phones are not as good in your place (would you mind telling us where your company is resided in?, it would in natural have less localized app in your geographical location. So creating an app specifically for them would gain more acceptance. That is fact, is a good thing. (see: Long Tail theory)
I have a very popular Apple iPhone app and wish to port to another mobile platform. What is best the Palm Pre or Google Android? The Android has more popularity with manufacturers but I worry about installation issues and incompatibilities. The Pre has one carrier and one mfr but I worry its sales will be too low.
My app uses an SQLite database and is content rich and over 200MB.
You did not mention if your app was paid or free, and whether it included ads or not. The story is clear regarding both of those on Android. You can not yet sell Pre applications, and we don't even know how Palm is going to handle paid applications. I am also not aware of advertising solutions for Pre.
As for the number of users, Android beats Pre hands down currently. And being the more open platform, I have no doubt in Android enjoying faster growth as well.
Android has the ability to be written in Java a generic enough way that your J2ME ports which can then run on Sonys, Blackberries, Nokias and Samsungs should be a short hop away if you desired. However a lot more detail of what you application did would be necessary as it might be something that is very achievable in a short time frame on the Palm
Which may sway you decision as to Android and Pre thats probably a coin flip decision
You might want to add BlackBerry to your considerations.
When combining all of the RIM models available, the total number of units sold beats the total units sold for Pre and Android devices combined.
Plus they have their App World service up and running now for selling your app through.
Jim
Ahhh, the great debate. Likely to start a holy war. It seems to me that there is a bigger buzz about the Pre than the Android. On the other hand, Palm has failed at this once before, and I have a hard time counting Google out.
I think I'm in the Pre camp. Get in early. Risk versus reward.
Couple of points to port your iphone application on Android and Pre devices
Android: recently they come out with native support, so it should not be too hard to port cpp code to android paltform using JNI
Palm Pre: As if now, development is purely supporting using Java script, and i am afraid you will have to re-write your app to support Pre.
My obvious choice will be go with Android first, this platform is supported by many OEMs and many carriers worldwide while Pre is limited to one carrier and with only one device at the moment in the market. Android definitely has much better market penetration than Pre
I'd definitely go with Android. The palm pre is making progress, but is still rare as far as smartphones go. If your app caters to a niche market in any way, you're likely to find the market is just too small.
Just one thing to remember with Android, though -- you can't make a 200MB app. The phones only allow apps to be stored in onboard memory, which is usually about 512MB with the OS taking 300MB. 200MB is the entire storage space for all apps on the phone. Android phones come with SD cards where data, but not applications, can be stored. You'll probably need to allow users to download your app's database to their SD card after they've installed a smaller, data-less application.
I'd go for Android too, (ok we now have a clearer vision compared to when the question was first asked ;) )
It's just there, everywhere now, so it can't be ignored. Plus i'm more of a Java developer ;).
Actually my concern is the opposite of yours: I'm an Android developer, and I port my apps to the iPhone. I used to do it by hand, but I found this product called ,iSpectrum ( http://www.flexycore.com ). There a video showing an Android 3D app ported to iPhone in 2 days only. This may be interesting a choice tool for you (if you decided to choose Android against Palm...)
I'm answering my own question because its been so long since I asked that a lot has changed. Primarily I went ahead and ported to the Android thanks to some very good answers here and my intuition that Palm was not stable enough as a company. And in hindsight that was the perfect move...Palm almost went out of business having been snapped up at the last minute by HP...and Android rocketed to be more popular than the iPhone. And our product, iBird Explorer, ended up becoming one of the most profitable ports we have ever done. Its also one of the best selling apps in the reference category of the Marketplace. Especially from a grossing income point of view.
I developed a flashcard program a while back for learning Japanese. I've been considering porting it to a cell-phone. What is a good target platfrom? I'm thinking about iPhone, HTC Touch HD (system software: Windows Mobile) or a Nokia (system software: Symbian). Since I know a bit of JavaME, something that runs that would also be cool.
Here's the most recent market share data. Have you considered building a web-based product consumable by all smartphones with decent web browsers? Sites like x.facebook.com are not OS-specific but are app-like enough to provide a good user experience. Building such a site and charging a subscription would be one approach to serve all markets.
Well the Apple store just celibrated its 1,000,000,000 download the other day, so I would say that the iPhone is the largest and easiest phone market to target. Also the Apple store makes it extremely easy to sell your application (they keep part of the revenue of course).
Perhaps you might like to ask which phone has the largest market share in Japan?
Also I understand Microsoft has plans to start an app store for Windows Mobile.
Since you know JavaME, take a look at developing for Android. It doesn't have a large market share, but at least you'll be able to leverage your existing skills.
You won't be able to find a common language and development environment that works on the majority of phone platforms. Once you select a platform, you're kind of committed to it unless you want to port your app to an entirely different language.
Nokia has started heavily pushing a mobile development platform based on Qt. Nokia sells a LOT more phones than Apple does.
Why write iPhone app #1,000,001 when you'd be lucky to get $500 for your investment?
There's a huge craze around iPhone apps... at this point it's totally unjustified from a developer point of view. (It's great for the users)
Qt is a really amazingly well done C++ platform (Nokia bought it, obviously :). I'm having a good time writing PC apps with it... I plan on buying a Nokia phone I can write Qt apps for soon. At that point, I'll be ditching my old iPhone (original unit, not 3G).
When the SDK came out, I thought the world of the iPhone. I even bought Apple stock. However, no Java & no Flash because Jobs is a control freak is just plain stupid. GPL incompatibility really hurts, too. I'm also not buying a Mac just to develop software for the thing.
A few weeks ago I was reading an article about a product called "rohmobile" that was a custom Ruby framework that run's on a micro ruby web server. It allows you to compile your application against all the popular mobile phones (Apple, Microsoft, Android, BlackBerry, Symbian). It seemed like a very cool idea and it's open source actively under development. The framework comes with a sync soltuion, so you can persist data to the local device using REST/SOAP. As I explored the product a bit more, the only thing that seemed like it would be a pain is the setup of the enviroment(s) needed to compile the code for the various device.... if you could make it past this, then you'd have a solution where you could support a bunch of difference devices with a single code base!
http://www.rhomobile.com/
** I've never programmed in Ruby but the syntax and the demo made it look really simple, since it's really just a local web page running on the micro web server installed on the device! The UI is HTML/CSS based. I think the product is still in Beta...
Just my 2cents~
Well I would start to find a system / programing language which is available for the top phones on the market.
I think a good go is python for that. Which makes it easy to use large portions of the same code on all of the phones which are going to be supported.
Then I would probably start with the iPhone, because I believe its userbase is still demanding for new toys :)
Creating a webapplication would be another way... but that would mean you need to be online. if you are not using flash or some other possibilities of persistent storage.
P.S.: I would not use javame :) .. I still don't like anything java at all
I have just started authoring web pages for use on "smart phones". I need to target Blackberry, WinCE, iPhone, etc. What resources or books would you recommend for someone with ample web and software development experience but no experience developing UI for these devices? What emulation kits would you recommend, and how accurately do they represent the real thing?
Edit: To clarify, I have a web application built in ASP.Net. I want a limited subset of the functionality available in the app to be available to mobile devices. I am writing a separate set of pages to accomplish this. I am starting with two, simple chunks of functionality. In the future I believe I might get requirements for more functionality to be ported.
Check out WURFL - the Wireless Universal Resource File
The WURFL is an XML configuration file
which contains information about
capabilities and features of many
mobile devices.
The main scope of the file is to
collect as much information as we can
about all the existing mobile devices
that access WAP pages so that
developers will be able to build
better applications and better
services for the users
Also Checkout the Wireless FAQ
Telling us the language you are using/know would be very helpful.
From an emulator standpoint, there are good ones out there, but honestly NOTHING beats having the actual device, yes it is expensive, but the user experience on a mobile device is much different than any emulator can illustrate. if you are serious about this, get a device or two for testing!
Documentation on developing web pages for iPhone can be found at Apple's iPhone Dev Center
You can test your site with the iPhone Simulator to get an idea of how it will look on an actual iPhone. Note: You need a Mac to run the iPhone Simulator.
If you are serious, you really need to test on actual devices.