Choose blackberry 10 platform to use call logs, messages, data usage all this functionality through application - blackberry-10

Please help me to choose correct blackberry 10 platform to create application which will access call logs,sms,data usage records from the mobile. Blackberry 10 webworks and Android runtime doesn't support all API's required for this application. Now I am planning to switch to native development. In native application should I go for core development or cascades development?

The difference between using Cascades or not is simple: in both cases, you develop a native application. Cascades simply offers you a richer API. Everything you can do with Cascades, you can also do it without, Cascades is just simplifying a ton of things. For example, without using Cascades, you'll have to create your own, complete GUI system. With Cascades, you have already one, which is integrated and homogeneous with the system.
Usually, when developing a native application, not using Cascades is reserved to a particular type of applications: games, which creates their own GUI. For a "standard" (read: not a game) application, you really should use Cascades.

Related

Is it possible to develop an Entity Layer with ANSI C/C++ or Embedded C to be used both in Android & iPhone platforms?

I need to create a common entity layer for my mobile phone application developments.(especially iPhone and Android platforms).Later on I want to develop some parts of business logic and interfaces with specific tools /languages used to develop for those two platforms.
(I've been searching about cross mobile frameworks and I know about most of the popular ones.
Rhodes,PhoneGap,Appcelerator,Corona,MoSync,Sencha Touch,jQuery etc.
People made various combinations with those frameworks to create native,native-like,mobile web based applications.
To create a cross platform application is not my main goal.)
This blogpost suggests ANSI C/C++ for porting applications across iOS and Android platforms.
http://community.developer.motorola.com/t5/MOTODEV-Blog/Porting-apps-from-iOS-to-Android-devices/ba-p/11144
Due to this blogpost I think it is possible to create an entity layer to be mapped and used on two platforms.
Had anybody ever tried to achieve this? Or know any other way to implement an entity layer to be used in both iPhone and Android?
By using ANSI C/C++, i.e. standard C/C++ without extensions, it will make an easier porting, but it also depends on the libraries (libc version an so on). With Android you can either use the JNI or code a native activity, but obviously that isn't portable and the idea of using native code is performance, not portability.

Cross Platform Apps

I am not much clear with the "Cross Platform Apps." Can we really built up some apps which can run on iPhone/iPad , Android Phones/Tabs , Blackberry , Nokia (Any platform or more than one platform at least) ?
I have heard something like WAC , Titanium but really not clear with all these. Please help me out.
There are some good frameworks out there to build cross-platform mobile applications:
Titanium: It is a framework to build Android, IPhone (and BlackBerry, still in beta it seems) using javascript, that will compile to native applications for the platforms specified.
Rhodes: A ruby framework, that supports almost all the mobile platforms out there (recently they added support to WP7). It has an MVC structure, and can use RhoSync to synchronize the data to a server side application.
PhoneGap: Another javascript framework, but it supports more platforms than Titanium, because it doesn't compile to native applications, but it embeds a web application inside a native application (web apps/web views are supported in each platform, so it's easier to handle the portability this way).
The apps will have access to the hardware, like the camera/gps, through some generic apis.
In some case you can build specific native module to integrate them in just one application platform if you need to.
These frameworks are useful to build cross-platform application writing just one application, without having to write each single application with the platforms sdks.
They have some (or many) limitations. If your application are simple enough you can consider using one of those framework. But for more complex ones, sometimes, if you target only a couple of plaforms, it could take less time to build each one with native sdks individually than using one of this cross-platform framework, because of their limitations (I highly prefer using the Android SDK than using Titanium).

Mobile App - Targeting iPhone, WP7, Android, and Blackberry

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

frameworks choosing strategy for multi platform webapp

Issue
What is your strategy for building a desktop-like webapp that needs to be deployed to desktop web browsers and on mobile devices(Android, IPhone, etc)?
A course of action could be to firstly select the best framework for building the part that runs on computers(i.e. not mobile devices). Being a desktop-like app, a good candidate framework is GWT+ExtGWT since it provides:
Java-based development which is much scalable/solid than developing in Javascript via ExtJS for example
Good debugging
Good testability
Next, you'd want to deploy this app on mobile devices too. So how do you go from here? Write a separate implementation(separate from GWT) for Android, another one for iOS(in objective-c), another one for Windows Mobile, and so on?
Related
Related to above, I saw the presentation of PhoneGap which claims you develop in Javascript+HTML and it generates code for all mobile platforms: Android, iOS, etc.
However, PhoneGap is not an option since I don't think it integrates well with GWT and more important, it doesn't generate a native app which can take advantage of features like backgrounding, services, etc(see http://www.youtube.com/watch?v=xHXn3Kg2IQE for why native Android apps are much better than browser-based ones). There may be other frameworks like PhoneGap out there that I'm not aware of though but at this point I only see:
one implementation with GWT
one implementation for Android
one implementation for IPhone
and so on ...
If you are already planning on developing for multiple platforms, it is a good idea to at least consider cross platform frameworks like PhoneGap or Appcelerator. Beyond the fact that you are developing for multiple platforms there are a couple of other important questions to consider.
Do you want a web version as well?
Do you need intensive graphics support?
Do you have loads of money to target multiple platforms?
Do you have loads of time to target multiple platforms?
You also point out two more great questions to consider in debugging and testability. In terms of unit testing, any native platform is very difficult to unit test. Debugging is pretty easy for most native platforms.
Regarding PhoneGap, it is important to know a few things about it.
You can write PhoneGap plugins. A plugin is essentially native code for any given platform that can do pretty much anything you would want to do in native code -- background services, opengl, etc -- and make it accessible to JavaScript in the web view.
There are several open source projects that you might be very interested in such as GWT-PhoneGap, QUnit for JavaScript unit testing, and Weinre for Firebug like debugging.
Hope that helps!

Make Phone Applications Across All Operating Systems [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Write once deploy on Windows Mobile 6, Windows Phone 7, Android and iPhone?
Currently I have created a 2 simple apps for iphone and 1 for windows phone. When I go to promote these apps they usually....well do you have this for android or blackberry or whatever.
Do I have to rewrite my applications in every environment in order to have them compatible across all the operating systems out there? Is there tools that address this or do you guys simply recreate the app in eclipse, xcode, visual studio etc..?
Complex applications generally need to be created with the native environment.
Simple applications can be created with cross platform tools like Titanium and PhoneGap:
- http://www.appcelerator.com/
- http://www.phonegap.com/
#Fraggle (see comment)
I have quite some experience with Appcelerator Titanium. The choice for native v.s. cross-plafrom completely depends on the kind of application you need and your knowledge. General considerations:
Can the application be created with web technologies like HTML, CSS and JavaScript?
What language / environment do I know the best (native vs web technologies)?
How much time and money can I spend?
Do I really need cross-platform compatibility?
Most mobile phone applications only provide an easy interface for internet services like news updates, traffic info, social media and video. Those applications can be easily written with web technologies. Therefor most mobile applications can be written with tools like Titanium. The great thing about Titanium: Get the native experience on multiple devices while only maintaining one code-base. Cheap way of developing cross-platform applications.
Many developers use Titanium because they don't know the native language (objective-C / java), but they have extensive knowledge about web technologies. This way they can create pretty nice applications without learning new languages. Titanium is actually used for many non-cross-platform applications.
Complex graphics, device specific tools and complex interfaces still require the native environment.
Native applications will always perform better and use device specific features, but do you really need that degree of perfection? Yes, develop native applications for every device. No, simply create one cross-platform application.
Check this page to see what Titanium can do:
http://www.appcelerator.com/showcase/applications-showcase/
You may be able to use a third party tool like http://www.phonegap.com.
There are many options for cross-platform app development, but I would suggest Adobe AIR as it is also supported on the Blackberry Playbook by RIM. As far as I know, it's the only cross-platform runtime that is supported by a major platform owner.
I have also seen it do well on Android, and iOS support is also advertized.
Well there are definitely some supposed "write once, run everwhere" solutions out there. Here is one from RhoMobile which specializes in this space. But that is just what a quick Google search turned up. I haven't tried any of them.
I had an app that was developed for Android, and I ended up essentially re-writing it in Objective-C when I wanted to port it over to iPhone. It worked out pretty well and took less time than I thought (considering I hadn't done any iPhone programming prior). But now of course I have 2 code bases that I have to maintain and when I add features I'll have to do it for both the Android and iPhone version.
So having a single code base that lets me build apps for multiple platforms would be great. Do any of the tools out there work well? Not sure. Do they give you full control to make your app look and operate the way you want it, and make us of all the OS's features? Not sure.
Qt (now owned by Nokia) is another provider of a cross platform mobile framework
http://qt.nokia.com/
Even though iphone and android seem to be missing from their official Supported Platforms list I think there is an Android 2.3 release just around the corner. Qt for Iphone also seems to be in the works.
HTML5 may be one solution if the app you providing is simple enough. Google is doing it this way. Otherwise, even you have anything "cross-phone" it may still feels alien.