Beginner Help for Developing Web Pages for Smart Phones - iphone

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.

Related

Creating a single SmartTV app for multiple platforms?

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.

HTML5 web app vs Native mobile apps

Hi I have been recently exploring some of the Javascript mobile frameworks that can be used for developing mobile web apps like Sencha, JQTouch, JQuery mobile etc.
I know the adv and disadvantages of both.
I just need some recent stats which show the market's adoption or opinion.
I tried three ways to develop mobile applications.
First method is to use frameworks that will take your html/css/js files and package them into mobile applications depending on your targets (BlackBerry, iPhone, Android, ...). I used PhoneGap (known today as Cordova). I didn't like it at all because the UI's rendering is so ugly on some devices and the user experience is broken. I had to use it with jQuery Mobile because it gave me a good UI design start. I tried some Phonegap Android generated applications on my personal device and it's really horrible. Some of them got rejected by Apple because of that ...
Second method is to use Appcelerator Titanium SDK. One word to sum it up: Awesome. One language to use (javascript) to create your UI/Controller. It's so easy to learn, so powerful to develop with and it has many out-of-the-box functionnalities (like facebook API, Yahoo Query Language, ...) that will allow you to put in place solutions easily for both Android and iPhone. BlackBerry is coming soon. What I liked the most is that it converts the written Javascript into the targetted platform with the default UI. It's really great. And, above all, the UI is easily customizable (with a css like system).
Personally, I put in place apps that can: Take a photo with the device then send it to a remote server, send messages to twitter/facebook, advanced geolocation, etc.
Third method: Native! It would take time if you target both iPhone and Android but, the big advantage is that you can create anything you want without being tied to a Framework for areas such as games, augmented reality , etc.
In my opinion, if you want to create simple applications with some nice features (weather, twitter feeds, sending on a facebook wall, ...), use Appcelerator Titanium SDK.
It converts your code into NATIVE.
If you have time to spend learning native languages, do it. It's the best way ;)
Hope it helps.
Regards.
I've summed up my thoughts on the whole "native vs. web" discussion in a blog post here: http://www.springenwerk.com/2011/09/thoughts-on-mobile-ui-design.html
In a nutshell: You can't get around getting to know the platform you are targeting if you want to provide a great user experience. Plus, you shouldn't try to mimic native UI/UX in a web application, it will only disappoint your users.
here are some pros and cons of native apps vs. web apps:
Native apps:
Native apps have more security
Native apps have higher user engagement, it has higher click-through rate (CTR) among the ad-serving publishers
When it comes to aesthetics and overall user experience, it is incredibly difficult for web apps to trump native apps
you don't have to buy a server and maintain it, therefore, for small businesses it is the ideal solution, not web apps which require a server.
Web apps:
it's cross platform - that means your one app will work on both iphone and android
cheaper and faster to develop and maintain
you will find programmers easier than native apps
updates are easier
Check out this post for some more opinion - http://www.thorntech.com/2013/01/html5-vs-native-apps-which-will-win-the-mobile-app-development-battle/
In particular, the last paragraph is worth noting. If you go down the path of building an HTML5 app, it is worth having some type of background "syncing" of content so you are not always pulling it from the web in real time. The app will be much more responsive if you load HTML pages from disk.
From my experience, the success rate of a native apps are much better than html or javascript based ones. I do not have sufficient numbers to back it up, but these are some issues that may crop up when trying to build html5 apps for different platforms. e.g.
Browser OS or webkit differences can cause unexpected bugs, css issues that could take quite a while to debug.
Your app is running on top of a webkit browser engine which takes up additional resources.
Older or non-smart phone devices may not have a modern webkit engine.
Nevertheless if you have good web skills over native, then getting an app to the market the quicket and cheapest route would be html5. Some apps lend very well for html5 such as data listing, and text content driven apps. I have written a writeup on HTML5 vs Native on my blog. Hope its useful.

Will a Safari-based app for iPhone be accepted to the iTunes store?

I'm about to begin development of an iPhone app. The app itself is fairly basic, and I want a speedy turnaround time.
I'm a web developer myself, specialising in traditional web technologies such as PHP/MySQL; I have no experience in Objective-C.
My plan was to create a very basic iPhone app that is just a Safari service that passes some basic variables to a URL. That URL is the app built in PHP and housed on my servers, this way I can create the app very quickly without needing to outsource anything.
My question is whether apps of this nature would be accepted into the iTunes store, or would they be out-right rejected? Anyone's experiences or comments are very welcome.
Thanks
It could go either way, but mind bullet 12.3 from the App Store Review Guidelines:
12.3 Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected
In my opinion, a simple UIWebView wrapper around your web site comes close to the definition of a simple web clipping. Your approval may very well hinge on your luck in drawing a sympathetic reviewer.
It really depends upon your application...These kinds of application have been approved in the past but again I am saying that it depends on many factors.
Try to test your app in every possible manner and also keep in mind the memory issues.
Best of luck!!!
Should be fine - its called a web app and there is software out there that will do just this for you.
All you need to do is to make a UIWebView and put your web app into it.
Also look at http://jqtouch.com. That gives you some idea of what you can do web-side. :)
http://www.netbiscuits.com/559
Native Hybrid Apps
Native apps can interface more deeply
with the mobile handset modules and
sensors to create an even richer
mobile user experience. Netbiscuits
provides pre-build native apps
frameworks for all major mobile
operating systems to be easily
customized for the needs of
enterprises.
Get "2in1" by combining the power of
mobile websites and native apps by
wrapping mobile websites into hybrid
apps and list them easily in all major
app stores of providers like Apple,
Nokia, Google or Samsung to open a new
mobile distribution channel. The
benefits of this approach are fast
time to market, minimized development
and maintenance efforts and maximum
mobile cross-platform technology
coverage.
Yes, it will be accepted as long as you stick with HTML, CSS, JS and Obj-C on the client side. You still need to wrap it in an iPhone app. In my experience, the best way to this is to use http://www.phonegap.com/ or a similar framework.
You'll have the option of deploying you app through iTunes or as a regular web app (you users will be able to create a link to your web app right on their springboards)
It SHOULD be accepted, granted you test test test and make it look just like a native application. Also you'll have to make sure that your server is never down, or if the application can't reach it just display an error message. You also have to keep in mind that there are a lot of iPod Touch users, and they don't have access to the internet all the time. Which means that chances are you'll get a BUNCH of 1 star reviews

Demand for iPhone App ported to Android?

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)

Iphone App vs. Offline Web App. Which way is the smartest?

I think about starting from scratch building a small application fullfilling two technical requirements:
should be usable on iPhone
should work offline
There are two obvious alternatives here to choose between
A real iPhone application with offline capabilities
A web app using HTML5 offline, Google Gears or similar
Having no iPhone app development experience (I don't own an iPhone), i wonder which way would be the easiest to go?
What are the learning curves for building offline HTML vs building an iPhone app?
Honestly, it depends what your app is going to do.
MobileSafari supports all the HTML5 offline stuff, so you could store data in a clientside SQL database, cache the application clientside, etc... The mobile Gmail app is probably the most notable example of that, giving you full-featured access to your Gmail even when offline. You can also use geolocation through JavaScript APIs that were added in 3.0. Web Clips let your web app share the home screen with native applications too. There is more on using web apps on the iPhone on this Stack Overflow post.
Obviously, doing a Web app will be of interest to people who like dealing with HTML, CSS, and JavaScript (and possibly whatever language is running server-side). It is possible to do really neat stuff with offline Web apps, but its performance won't be as good as that of native apps, especially on pre-3GS devices.
Developing a native application will require you to learn Objective-C (or C# as soon as Mono Touch is available to the masses) and pay a $99 fee to be allowed to test on-device and deploy to App Store. A lot more of the system is exposed to you through the various APIs, such as the camera, compass, multitouch, and so on.
Objective-C is pretty simple to pick up if you're familiar with Java; you only really need to get used to the square bracket syntax and memory management and then it's pretty straight-forward.
Then there are the hybrid systems, like PhoneGap, which expose more of the device's APIs, provided the Web app runs in a special container app. It is also crossplatform, so you could also deploy the app on Android and BlackBerry if you wanted to. This still requires you to pay the App Store fee, but if you're more familiar with Web development, this gives you the best of both worlds.
I can't tell you too much about HTML apps in general, but I can tell you that the API for the UIWebView is extremely minimal, and of course there is much less you can do than in a native iPhone application.
An HTML5 offline app would have security issues as you would have to hard code your oauth secret into code that anyone could see ( by clicking view source, or inspecting in Firebug ). You could simply use http auth, but then you get the ugly "from API" credit with every tweet sent from your app, and also that ugly http auth popup from the browser.