We're evaluating Sencha Touch for mobile development. Has anyone used this yet (I realize that it's still in beta), and if so, what are its strengths / weaknesses? How does it compare to alternatives?
It certainly sounds compelling.
Thanks!
I'm playing with Sencha Touch, I have a project up at GitHub. If you're comfortable with ExtJS it will be familiar. The examples are impressive (requires WebKit browser). You might be interested in this question as well.
I've used it only briefly. It looks very good and has a nice array of tools to make pseudo-native apps. One of the larger concerns is the licensing (the inclusion of ExtJS and the requirement to purchase a license to use the software). Now ExtJS and Sencha have merged - so I am unsure of what the impact will be. Also, as for alternatives, Sencha has merged in JQTouch (a primary alternative). See this post for more information
I think currently it is only optimized for safari-browser. I tried in on Android Phone (HTC Magic, Android 1.6) and the examples didn't work.
but it is a beta of course....
Currently ,i'm using sencha-touch in my project and pretty easy to use and understand especially with the documentation that comes along with it . As compared other mobile fameworks whose documentation is limited
Related
I am a C Sharp.NET & Silverlight developer and now thinking to swicth to SmartDevice development specially for iPhone & Andriod based phones. I have looked over web and found some cross platform development frameworks like
http://developer.openplug.com
http://www.phonegap.com/
http://android.xamarin.com/Welcome
but not sure about which to choose. Naturally I would like to keep my learning curve less but also would like to choose platform which provides more power, so I am looking for your suggestions and 'Getting Started' tips and also which device you think will be in demand in future iPhone or Android ? .
Thanks,
Maverick
I wouldn't recommend any of those. The problem is, that those "cross-platform" development frameworks, still aren't cross-compilable. This means you still need to develop an application for each platform, but you can reuse heavy calculations if you are using models af MVC.
Another thing is that those frameworks still aren't 100% native supported, so you'll loose some features from the native frameworks when developing applications.
I've read a lot of articles and to be honest, these cross-platforms seems to be dying out, cause both Android and iOS are moving very fast in each their direction and the cross-platforms cant keep up. But it's still up to you.
In would recommend you to choose one of those platform and learn it from scratch. With your C Sharp background, maybe iOS and Objective-C would be the most natural choice.
Enjoy
Edit: Regarding you last question:
I dont think it matters which one you choose, both will be domination for a long time. You should pick the one you can identify yourself with.
since you are C# dev, go for MonoTouch. I heard good things about it.
Miguel de Icaza is behind Xamrin. He wrote the most prolific .NET platform for UNIX, mono. I believe both he and his team have the capacity to bring you the most coverage for common features on Droid and iOS. My friend has a startup and is releasing an app shortly for iOS on Xamrin. It is a video streaming app.
HTML 5 will get you the most cross platform for the investment. Of course, like everyone else has said, if you need lots of native integration or if you want to use the latest APIs upon availability, you have to go native.
I intend to start an iphone/android project with the titanium SDK for mobile. Do you know what are the main feature-wise pitfalls to avoid ? what sort of features will be very hard or impossible to achieve ?
I understand that there is a plugin system to circumvent these limitations. Do you have information on that ?
Thank you for your help,
Jerome Wagner
I have yet to find a particular piece of Android functionality that is missing from Titanium. Not sure if widgets are in the current 1.5.1 mobile release or are coming in 1.6. In any case, the coverage is pretty decent, as you will see if you try out the "kitchen sink" app.
But here are some things I find lacking:
Titanium's Android support is still much buggier than iPhone support. For instance, I can't get global events to work properly--that's pretty important functionality.
documentation isn't complete; the API docs are skimpy
you're on your own; Appcelerator employees don't bother to answer questions online (even when they concern obvious bugs on their end), unless you subscribe to a support plan
That said, I've found developing Android apps with Titanium to be much more enjoyable than dealing with the Android SDK!
I agree with most of what #Drew stated above.
The API documentation is for the "most part" pretty complete, yes there are a few missing pieces, but hey the framework is free, they push releases pretty frequently and all the source code is available for you to go through yourself. You also have full access to the Continuous Integration Builds
I believe the 1.6.0 release has addressed additional issues with Andorid support, there is also a bug tracking system for you to investigate and report issues.
You are not on your own any more than with any other similar framework... Occasionally employees will review specific issues that show up in the Q&A Forum but the forum is very active and there is tons of community support. I would be surprised if you could write most of an application from just cutting and pasting from the Q&A questions and you will find the rest in the Kitchen Sink Example or Tweetanium Example Projects.
You asked about a plugin system. Titanium offers the ability to develop your own custom native modules.
The Titanium's Module Developers Guide (PDF) isn't the best, but it will get you started.
As Drew said, many of the Titanium's Android support is buggier compared to iPhone.
Titanium is meant for people who never wanted to learn the native iphone and Android programming. If you know to develop applications using objective C and you wanted to develop applications for iPhone then don’t even think of Titanium, the same case applies to Android too. Only if you are lazy to learn a language, you can opt for Titanium.
1.The size of the Application is a big concern here.
2. Some of the features in Android which was shown to be working in developer reference were not working. Even after being filed as bugs, they were not updated in developer’s reference that it works only in iPhone. For example, “focus” events of the window is handled only in iPhone and never in Android.
To get to know in details, the problems Titanium can bring you read the following post:
http://mobworld.wordpress.com/2011/01/10/titanium-framework/
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I want to build a mobile/tablet application whose core feature will be taking pictures with the camera , viewing pictures and receiving notifications. Also I want to target iphone, ipad and android platforms.
Titanium appcelerator piqued my interest because of its cross platform appeal. However I am concerned because I've read mixed reviews on SO and other sites. The things that worry me are:
Subpar android support
Camera support not fully capable (e.g ios 4.1 HDR capability)
Camera support buggy
The nightmare scenario for me would be to invest time in titanium only to discover later on that its a major PITA and drop it and go "native"
Please share your thoughts and experiences.
I chose Titanium for a serious application, although one that does not use the camera. I think there are a variety of things that could play into your decision...
If your app intends to do "fancy" stuff with the camera, or some real heavy image processing and so on, you're likely better off going native. If on the other hand, you just want to have it take pictures, and then those will be used as-is, or sent to a server, or what not, then Titanium should work just fine. Titanium does have some processing and image manipulation things, but as others have said, if you really want to take advantage of the device's hardware, you probably want to go full native.
It should also be noted, and Appcelerator says this as well, that with a Titanium app, you won't just write a single app that works as-is on all devices. You will need to taylor the UI to each device (or class of device, i.e. iPhone, Android), because they have different UI's, and different standard UI flows and so on.
But, one of the potential advantages to Titanium is if you don't know Objective-C and/or Java, and you do know JavaScript (and in my case, I'm actually using Coffeescript :). Or, if you would enjoy your work much more writing JS than ObjC/Java. This was one of the main reasons for me. I have done some ObjC dev in the past, and don't even mind it, but this project I'm doing is on a very very aggressive schedule, and it was just going to be far more effective for me to use Titanium. I was able to get set up and build an app extremely quickly, and I am not spending any time having to become more deeply familiar with the programming language I'm using, memory management bits (you can't fully ignore this with Titanium, but essentially they're doing it for you). Based on the folks I've talked to, and how much time they spend with memory management, Interface Builder issues (this is mostly the ease of forgetting to setup connections or hook various things up, IB is actually a pretty great tool), and so on, I'm quite glad I'm using Titanium.
While I expect to do an Android version at some point, it's not a priority. But, I'm glad to know that a large chunk of my app code will be re-usable, tested, etc. and that I'll wind up mostly just building/revamping the UI for Android, not rewriting networking code, data management, and so on. Android support will be much better (supposedly) in Titanium 1.5, but you may want to wait for that release to evaluate Android if that's a priority.
Finally, Titanium does have a "module" system, that allows you to wrap native code, exposing it as a JavaScript interface in Titanium. We are about to leverage this to integrate a third party library, and at least for what we need, it looks very easy to use, and has given me a little more confidence that if some particular native feature we need access to comes up, that we'd have a decent chance of integrating that while still using Titanium, but I think it would depend on what the particular native functionality was.
Good luck and enjoy building a mobile app, it's pretty fun!
We have been using Titanium in one of our projects for around 2 months, and frankly speaking our experience with Titanium is too bad.
As per my opinion, below are some major drawbacks of Titanium:
1) First thing is you will not get debugging support at all (We can understand how debugging require in any of the project and in any of the technologies).
2) Titanium is NOT fully supporting all the features of Android/iPhone; beyond some level it will not give you support.
3) Comparing with Android/iPhone SDK, developers will get very less amount of help from the internet and API library (Titanium provides the API library help file).
These are the general issues that end developers face while dealing with Titanium and I suppose sometimes it will be tedious and frustrating work for them.
If the functionality of your application is somewhat like displaying data from the web (like many news, media type apps) then Titanium is the suitable option; otherwise not.
The Android support is not near as good as it is for the iPhone. If you were to just say iPhone I would say you would have luck using Titanium. However, I think trying to build one code base in Appcelerator and also use in your Android environment may not be the best experience.
That said, IMO doing Android / Java code is much easier than doing Objective C / iPhone work.
So worst case I would consider using Titanium for your iPhone version & do Android in Java.
You can give it a shot doing them both in Titanium, but worst case code the Java version.
I just hate objective C and the 'native' Apple development environment so much.
I would recommend against using a cross-platform toolkit when interacting with device hardware is one of the key requirements of your application. I haven't worked with Titanium before, but I find it hard to believe that they will give you the same level of hardware access that you get with native frameworks.
In particular, iOS 4.0 added a mess of new capabilities regarding the camera, including live video frame processing through AVFoundation, and I find it hard to believe that a third-party framework will keep up as these platforms advance. To be honest, it's pretty easy to write an application that interacts with the camera on the iPhone nowadays (count the number of them on the App Store as an indicator of this). I wrote a live camera frame processing application in about six hours the other day.
I can't speak for Android, but I imagine dealing with cameras is fairly trivial using the native APIs there as well.
You're also going to find performance testing and debugging your application to be far easier using the native tools than those supplied through a third party. In particular, Apple's Instruments is an extremely powerful, yet easy to work with, application for tracking down CPU and memory issues within your application.
There's also the community aspect. You'll find far, far more people working on Android and Cocoa Touch than on Titanium (just look at the numbers of questions in the various tags on Stack Overflow to see that). This means many more tutorials and a whole lot more sample code that you can use.
The time you'll spend getting your iPhone and Android build environments set up, and submitting to both stores, will be the same no matter if you go with a native environment or with Titanium.
In the end, even with learning both platforms, I think you'll come out ahead by avoiding a cross-platform solution. Trust me, I've tried to do cross-platform development before for other projects and ended up with lowest-common-denominator products that took much longer to write.
I've developed an Appcelerator-based camera application and was very pleased with it. I think some of the negative reviews come from the fact that it's a bit hard to get set up (more due to Apple's crazy developer registration process).
Once I got started, it was easy to do things like overlays on top of the camera screen. I was really expecting difficulty with that part, but it worked well.
I have spoken with the Appcelerator team in the past, and they are a great group to work with. I've seen them be responsive to other user issues, and I'd trust that if I ran across a real bug, they would address it quickly.
A little late, but my two cents...
I honestly believe you can very quickly prototype an application with Titanium Appcelerator and focus on the critical feature sets to determine if it is the appropriate tool for you.
All developers have there opinions and experience(s) which influence there comments; developers have different ways of learning and different levels of productivity... In the end, it comes down to how are you most productive with the tools available to you.
Since you are stating from the start that you want to deliver a solution an multiple platforms, I think it would be a poor decision on your part to not even spend a week or two investigating cross-platform frameworks and then making the decision based on your personal experience.
There is Titanium Appcelerator and there is also PhoneGap, where PhoneGap might help you is that there is the ability to extend/enhance the underlying framework through writing plugins (I wrote one for iphone ) and there is an android one on my blog also... this can fill missing gaps for you when you move across platforms.
Also since the UI in a phone gap solution is HTML5 Webkit based, it can give you a consistent look and feel across you devices if you like. Frameworks like jQTouch and JQuery Mobile are being used for UX with PhoneGap Application
I reviewed negative feedback for Titanium Appcelerator but I tottaly agree with Aaron Saunders that if you use PhongeGap Development is support HTML5 which can getting easy to make apps for iPhone, iPad and Android mobile.
Has anyone highlighted the cost off titanium.
I was contacted by them today and if you are more than a one man band you have to sign up for a partnership program else you are held liable for breech of contract if you release the app.
The partnership program is £5000 which is far to much for us as a start up company when it's our first application, we are currently looking for a different option now.
With the recent loosening of the Apple Developer licence on third-party development platforms, I have had a brief look into app development with Monotouch and Flash CS5 but am unsure of which to develop with. I am competent in both C# and ActionScript so the language isn't so much the issue (but i dislike objective-c so please don't suggest it).
What I would like to know is which development platform (if either) has the bigger advantages in terms of execution speed (FPS in games) etc. (Assuming that the code efficiency be of the same degree on both). Also if there are any other advantages/disadvantages between them I would love to know. (Please also ignore pricing, i am purely looking at this from a development point of view).
Cheers.
If you are looking into Mono, you might also want to check out Unity.
I started working through their tutorials last week and am having a blast. They have support for making iOS games with C#, JS, and Boo (Similar to Python). They offer a no cost stripped down version and a more advanced one for a price.
Along with the detailed tutorials on their website in pdf format, this site also provides video tuts specific to the iPhone, which you might enjoy. 3D Buzz
Here is a write-up on the unity site about how their framework integrates with Visual Studio/Mono Unity FAQS. They use their own C# compiler, but you can still work from VS or their Mono implementation.
I would strongly suggest using Monotouch over CS5. I've only really used Monotouch, so my answer won't be complete but I can tell you about my experiences with it.
Although it is only a subset of Mono, it brings a lot of C# wonderful features to the iPhone and it has a 1:1 binding with the native APIs which means you're learning how to develop for the iphone using the native APIs. Due to the fact it is a 1:1 binding, if you come across a problem, you can always see how it's done in Objective-C and then apply it to C#.
Granted, Monotouch does come at a price, I've found the price worth it due to the constant updates and the amazing speed at which the support staff will respond to any queries.
There is a great community envolving around it too - see Monotouch.info as example, which will link you to many great articles to get you on your way.
Can someone recommend a good Mobile UI Javascript/jQuery framework that works well with both the iPhone and Blackberry? I'm developing the core app from ASP.NET.
Thank you in advance.
I don't have any personal experience with any of these, but I thought I'd mention a few that I've heard of. It will probably depend more on the features you require for your specific application, to determine which framework suits you best. Also, this is by no means an exhaustive list - the "cross-platform" mobile frameworks seem to be popping up all over the place recently!
Rhodoes
PhoneGap
ramp
appcelerator
As it is today, the BlackBerry browser is not very friendly to these libraries. But the upcoming version will support HTML 5, which will allow you to use most popular js frameworks. From personal experience I can recommend Sencha and jQuery.
I would recommend Sencha Touch or Sproutcore.
Sencha Touch is very similar to EXTJS, which a lot of front end developers really like. Check out
http://www.sencha.com/products/touch/
It is probably more mature than SC, and you will have a larger developer base on which to draw. You are gonna wanna try out the demos on that link, on a phone or ipad if you have one.
However, I personally like the strong MVC pattern that Sproutcore enforces. The mobile framework exists, but I don't know of any major clients adopting it, yet. The founder of SC, Charles Jolley, recently left Apple to push his framework; its gonna be big.
BlackBerry has very basic browser.
But for iPhone, you can try jQTouch. Its lightweight and amazing.