I am new in Symbian UIQ. So anyone can help me out about following queries.
What is Symbian UIQ?
which SDK are used for developing application using Symbian UIQ?
Can we call webservice through this application or can we use Webservice in that?
GPS facility are available in Symbian UIQ.
and last thing can we use third party application through, this application?
Thanks.
Maybe you start at Wikipedia for a basic overview.
UIQ (User Interface Quartz) is a framework (mostly) for the Userinterface as the name says, like S60 or QT.
Before you start to invest to much work in UIQ, it's woth to mention:
...UIQ will cease to exist. S60 is the UI choice of Symbian Foundation; UIQ will contribute its assets to the foundation
Related
Is there a sane way to develop a cross platform Mobile app? We want these to be native apps on each platform, and not necessarily some kind of web page.
Currently we're thinking to split it into two languages:
C# backend (business logic)
--> Standard C# app for WP7
--> App built on MonoTouch for iPhone/iPad/etc.
Java backend (business logic)
--> Standard Android Java app (MonoDroid version of C# not ready
yet)
--> Standard Blackberry Java app
We could also develop initially in C# and use one of the conversion tools out there to get our C# converted into Java as a starting point.
Is there another approach? Our skillsets include mainly include a strong C# .Net background, and minor Java experience.
We don't really want to go low level and use something like C/C++ to get the job done. These are usually going to be simple LOB applications that communicate to some web service.
Side Question: how do game devs like the makers of Angry Birds do it?
UPDATE:
MonoDroid is now officially released. So it seems you would only need to use Java for the BlackBerry. We are considering not developing for BlackBerry at all, because developing for the other 3 platforms has been simplified. There is definitely some cost involved, as MonoTouch and MonoDroid are both $399 and you would also need a license for Visual Studio (this doesn't include cost for App store, etc.).
There's no good simple answer that I know of for all mobile platforms. You can use development environments like Appcelerator Titanium, which cross-compile to native code on various platforms (right now, for instance, I think Titanium supports iOS and Android, with plans for Blackberry). However, these usually have a limited API that you have access to, and you still end up needing to design different UIs for the different platforms (in my commercial work, I have never successfully used such a platform)
You could also design all the business logic in a web-services back end, and then just write "thin client" apps for each platform. This works, but of course requires network access when the end user wants to use your app. (Usually it'll be there, but sometimes may not)
Ultimately, I usually end up doing what you propose -- writing the basic business logic in a couple of different languages as generically as possible, and then bundling that in with custom UI/device code for each platform. Haven't found a better way myself....
(BTW, I believe games like Angry Birds are written largely in OpenGL and then loaded onto the OpenGL processor on each platform. But I could be mistaken...)
Those are some great answers. I agree, x-platform development is still very primitive. I'd like to add 2 points:
1) You do not need to write your backend in different languages. Choose one language (based on your comfort level, performance etc. criteria) and then connect from your platform-specific apps directly to the backend. If your backend is server-side code, one way of talking to it would be via XmlHttpClient. If it's a piece of native code common across various apps and is written in say C++, you can use JNI from Java and wrapper assembly from C#.
2) Another reason for avoiding x-platform tools is that you'd always need to wait for them to support the new APIs released by the platform vendor (Apple, Google, MSFT etc.). Once these companies release new APIs, the tools will need to be updated and only then will you be able to use the new APIs.
I don't think this is (easily) possible, if you're not using some HTML5 (jquerymobile etc.) in a WebView in your own app (looks like a real app, but still you will somehow see that it's not) instead of the normal browser. You can still use some native API from the device (accelerometer,...).
There are (commercial) platforms like Sybase Unwired Platform that help you in generating some client code. Afaik for Blackberry and Windows Mobile even some UI can be generated out of the business objects on the server. But to me it sounds that this might be too heavy-weight for your case.
Regards,
Martin
I want to develop an application which runs on iPhone / Android / Windows Phone 7 smartphones and is able to recognize a marker and place augmented reality content on it.
Is there any common framework which I could use for that task?
This is probably the closest you'll get:
http://nyatla.jp/nyartoolkit/wiki/index.php?FrontPage.en
Not sure about Android or iPhone, but Kevin Marshall has done some proof-of-concept work on Windows Phone 7. You should keep in mind though, that augmented reality on WP7 requires access to camera APIs that are not publicly available and as such any AR application on WP7 would not be available officially through the Marketplace. Device manfacturers (such as LG) have access to these APIs, which is how some AR applications already exist for WP7.
As Derek and Stefan point out, it appears that there are ports of the ARToolKit augmented reality framework for all three platforms.
On iPhone, you can see this in the VRToolkit sample application by Benjamin Loulier, which leverages the enhanced ARToolKitPlus library.
For Android, it looks like NyARToolkit is available, with this sample application (as pointed out by Stefan).
Finally, it looks like SLARToolKit is used in the Windows Phone 7 sample application here (as pointed out by Derek).
Be aware that this toolkit and its derivatives are licensed under the GPL:
IMPORTANT NOTICE REGARDING YOUR RIGHT
TO USE ARTOOLKIT:
ARToolKit is made available freely for
non-commercial use under the GNU
General Public License. Commercial
licenses to a professional
implementation of ARToolKit are
available for users for whom the GPL
is not suitable, or who require a
higher level of support, or who
require customization or other
specialist modifictions. Commercial
licenses are administered by
ARToolworks, Inc., Seattle, WA, USA.
I've seen people violating this license in their applications and derivative frameworks, so it's something to be aware of.
Did you check Layar?
AFAIK they do not support WP7 but I guess it's a matter of time.
A friend of mine told me that some frameworks (PhoneGap and/or QuickConnect) can transform my HTML/JS/CSS code to an iOS App.
Personally, I hate this kind of frameworks because when you get a bug, it's very hard to debug. But, on the other hand, as i'm starting learning iOS programming, I find Objective-C hard to learn.
Did anyone tried these tools? What are their limits? What about performances?
Thank you,
Regards.
These frameworks are handy if you are coming from web development world. Since they allow you to develop using HTML/CSS/Js you'll be able to get going quite rapidly.
Even though they offer more interaction with the native capabilities of the device (contacts, camera, accelerometer, etc.) than pure web development (using Sencha Touch or jQuery Mobile for example) they are still more limited than a native application.
Webkit
Most of these solution are focused on devices using a WebKit based browser for the rendering. Which is used by many of the main mobile OS :
Symbian, iOS, Android, BlackBerry, Bada, etc.
Main exception being Windows Phone which uses Internet Explorer
Cross-platform
Their goal is to enable cross-platform development ever by wrapping your web development into a native app (PhoneGap, Titanium) or by "translating" to the appropriate language for the targeted device (RhoMobile Rhodes, MoSync).
iPhone specific
Aiming several platforms implies that some phone specific features might not be so easily supported. And the UI won't look as native since it's targeting different OS. So if you are only aiming iOS4 you could maybe try some of the more specific solutions such as:
iWebKit
Ansca Corona
Performances
For standard apps you should'nt notice much difference. But if you are planning to develop games some of these frameworks are probably not the best solution. Corona claims to be appropriate...
Caution
If you plan to develop a commercial application beware of Apple's policy.
Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine
Many applications using these tools/frameworks are still accepted but there is nothing official.
Edit: As stated by Rydell the policy has changed since September 9.
PhoneGap and Titanium allow you build native iPhone Apps based on HTML and JavaScript.
Has anyone gained experience with both? What are the differences?
There is a pretty lengthy discussion about PhoneGap VS Titanium (and Corona) on StackOverflow already that might be useful.
One of the big differences is that PhoneGap is MIT licensed and Titanium is (just recently changed) Apache licensed.
This article is a good summary of the practical and philosophical differences. Note its from an Appcelerator evangelist, but I still think its pretty impartial. In fact I think he shares Titanium more warts that I probably would :).
http://developer.appcelerator.com/blog/2012/05/comparing-titanium-and-phonegap.html
It's probably worth following the current Apple/Adobe spat, in which Mr Jobs has put the future of products that aren't written in language XYZ in the balance. OS 4 SDK states:
Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
I believe Titanium is affected by this.
Well..! this is not certain that which is better to implement the project.
Both technologies are new and having their pros & cons as well.
Titanium says to keep native environment with the help of java Script Based framework, on the other hand the phoneGap provides everything inside the WebView, you only need to put your web based project having index.html inside the WWW folder, found in the project directory structure of the Project.
So if you comfortable with Web Works, phoneGap is suitable in this case otherWise you should go with Titanium.Its easier to use and fully facilitated.
Unfortunately Titanium is not opensource anymore. You can develop apps freely but You have to buy Indie account to publish an app to appstore which cost some money.
PhoneGap is a free and open source framework that allows you to create mobile apps using web APIs for any platforms (iOS, android,windows, Blackberry etc) you think of.
Titanium: Is a cross platform, where in the code you write in JS and Titanium API's will be converted to native code and look and feel of the app will be same as native apps.
PhoneGap: Is a hybrid platform, where in you write the code using web technologies like JS, HTML and CSS. Which uses web views present in the native devices to render the UI. Look and feel is not same as native apps.
Exists an universal phone developement language?
I mean, for example, php or java or whatever
Edit : We have to develop a few phone applicatons, and we are looking for the best reusable language in differents devices (Blackberry, iPhone, Motorola, etc)
Java is as close as you'll come, but it's no where near universal (iPhone doesn't support it!)
Since iPhone's language isn't used by anything else either, it's pretty much a given that you won't find a universal solution.
Rhodes by Rhomobile is a Ruby framework for building cross-platform phone applications. It allows you to build a single application that works on all major smartphones: iPhone, BlackBerry, Windows Mobile, Symbian and Android. (The only obvious omissions seem to be OpenMoko and PalmOS/webOS, but all the phones you listed are supported.)
The way Rhodes works, is that you write your application in Ruby and your UI in HTML. A Ruby implementation, the Rhodes framework itself, your application scripts and your HTML files then get packaged up into what looks to the phone's operating system like a single native application. Rhodes then runs a webserver inside of the phone and serves the application from there, using the phone's builtin web browser UI component and a JavaScript UI library for making the web app look like a native app. (E.g. iUI for the iPhone.)
There was a nice introduction to Rhodes (with live coding) by the Rhomobile CEO at the Mountain West RubyConf 2009, the video is available at the Confreaks website.
Java (more specifically J2ME) will work on most phones. Googles Android and Blackberry development involves Java too. On Symbian-phones you can develop in C and there is an interpreter for python. If you are aiming for the iPhone market you have to stick to Objective-C and the Cocoa Touch framework.
There is no universal language, nor universal runtime that is supported by all of the major platforms. Two major players are Java on J2ME, BlackBerry and Android devices and Objective-C on the iPhone.
You might want to check out Symbian phone OS, it is intended as a common OS originally a joint collaboration between Nokia, Motorla and Ericsson. see: www.symbian.org/index.php
HTML + Javascript + CSS
PhoneGap!
It is the only cross platform mobile framework that I know of. Has feature support for iPhone, Android and Blackberry
http://phonegap.com/
Well!!! Most of the phones support java. What are you trying to do? Learn a new language?
Java is probably the closest you're going to find.
Even if you can do it, what good does it do to write a mediocre application that doesn't really take full advantage of whatever device it is on?
Bite the bullet and choose to do great implementations on a selected subset of mobile platforms.