Fwd: Question about development environment

30 views
Skip to first unread message

Leilah Lyons

unread,
Oct 21, 2014, 4:40:20 PM10/21/14
to educ...@googlegroups.com
passing this question along to a larger audience:

---------- Forwarded message ----------
From: Priscilla Jiménez P. <priscilla...@gmail.com>
Date: Tue, Oct 21, 2014 at 3:33 PM
Subject: Question about development environment
To: "ltg...@googlegroups.com" <ltg...@googlegroups.com>


Good afternoon all, 

Have any of you heard about or used titanium ?? http://www.appcelerator.com/titanium/
It is a development environment for mobile apps.  Any thoughts/comments ?

Thanks 

- Priscilla. 

--

---
You received this message because you are subscribed to the Google Groups "Learning Technologies Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ltg-all+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Leilah Lyons, Assistant Professor
  Computer Science * Learning Sciences
  University of Illinois at Chicago
    lly...@uic.edu
    312-355-1310 
    851 S. Morgan (M/C 152) * Room 1132 SEO
    Chicago, IL 60607-7053
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I have a joint appointment with UIC and NySci:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Leilah Lyons, Director of Digital Learning
  New York Hall of Science
    lly...@nysci.org
    718-699-0005, x368 
    47-01 111th Street
    Queens, NY 11368
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Matt Zukowski

unread,
Oct 21, 2014, 5:14:46 PM10/21/14
to educ...@googlegroups.com
You're kind of getting the worst of both worlds with Titanium: you have to write your app in a crappy language (JavaScript) and in a crappy dev environment (Apple's and Google's tools for building native apps are way better), and you end up with an app that is unlikely to perform as well as a native one. In exchange you get something that compiles to both iOS and Android, but it feels a bit like a deal with the devil if you ask me.

--
You received this message because you are subscribed to the Google Groups "Educoder" group.
To unsubscribe from this group and stop receiving emails from it, send an email to educoder+u...@googlegroups.com.
To post to this group, send email to educ...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/educoder/CAHQD8-Rz_wmYMz7wziciSO0gsjvZ1vXSE0OzZsCZQEgaiDRGuA%40mail.gmail.com.

Anthony Perritano

unread,
Oct 21, 2014, 7:12:38 PM10/21/14
to educ...@googlegroups.com, priscilla...@gmail.com
whoa whoa whoa. “javascript crappy”, "you end up with an app that is unlikely to perform as well as a native one”. what have you done with old matt? or was that a Cylon? Finally we totally agree on conversation we had 3 years ago. hahaha

1. Totally. If you come from a javascript background Apple’s Swift will feel like home. There is this functionality in Xcode called a Playground — an interactive live rendering of the code you write. its perfect for learning the language or to test an algo etc.. 


2. I would also check out jetbrain's AppCode for Objc and Swift and Intellij 13 for Java and Android. AppCode is for when you have master the basics of app development and want to code in turbo mode. Same with Intellij 13, amazing android tools, the interface designer is first class. Jetbrains just made all their IDE’s free for students and faculty.


3. Hybrid apps are an option. Where the core of the app is native (iOS or Java) and interacts with a partial webinterface within the app. This allows developers to make heavy content screens while getting all the native good stuff like its performance, threading, location services, camera, etc… this is different than titanium and phonegap

I wrote a hybrid test app a number of months ago that demonstrates a number of things like popping up a native dialog from a webpage and a javascript popup from a native view. Showing how objective c can call javascript functions and javascript functions in a local webpage make obj c calls in your app. 


It’s been successful for some, like the creator of ruby on rails and the basecamp app: 


its been unsuccessful for some, like facebook who metaphorically put a stake in HTML5 — over promised and underdelivered.

-Tony


Priscilla Jimenez

unread,
Oct 21, 2014, 7:29:17 PM10/21/14
to Anthony Perritano, educ...@googlegroups.com
Thanks all for your responses. 

- Priscilla

Matt Zukowski

unread,
Oct 22, 2014, 10:58:51 AM10/22/14
to educ...@googlegroups.com, priscilla...@gmail.com
Haha lets not get carried away Tony. When I said that with Titanium you get the worst of both worlds, I meant that you don't get to use the best aspects of web development (the DOM + CSS, great dev tooling like Chrome Dev Tools, a vibrant open source community, etc.) — but you do get stuck with the all the worst parts (namely JavaScript). I guess what I should've added was that if I'm going to build a cross-platform mobile app, I'd just build it as a web app and then wrap it in a webview/PhoneGap. There's no doubt though that if you're willing to go through the pains of working with Java and Objective C, you'll end up with a much better Android/iOS experience. Swift looks great by the way, but is it ready for full-fledged development?

Leilah Lyons

unread,
Oct 22, 2014, 11:31:35 AM10/22/14
to educ...@googlegroups.com, Priscilla Fernanda Jiménez Pazmiño
Thanks, all, for the feedback.

The reason for the question is that we're partnering with a museum that has already built a prototype mobile exhibit support system using Titanium to develop the front-end visitor experience (see http://www.21-tech.org/wp-content/uploads/2014/10/2014-09-02-19.42.00-576x1024.png for a screen shot), and Wordpress to allow museum staff members to contribute content to the system (things like short how-to videos illustrating how to use the exhibit, extra images and text explanations of the science, etc.). We were trying to decide if we wanted to work with what they already have built, or if we wanted to develop our own parallel system. I hesitate to start from scratch if the workflow is already working for them, but they had their prototype system built by a bunch of summer interns so ultimately we'd be on the hook for any and all further dev.

My guess is that for such a simple UI, Titanium might be perfectly adequate? The only new type of mobile UI elements we'd be adding are feedback buttons (think those 0-5 star ratings widgets), a data-driven dynamically-generated list of items to review (we want interpreters to be able to see a full list of which media elements they displayed during a day's work and provide said feedback on the media), and - possibly - the ability to push an event to the mobile from a server to remind the person using the mobile to access a particular media element at a particular time.

Some of my reluctance to commit to the existing prototype approach, though, is because I don't yet have a sense for what *kinds* of errors might arise from using a cross-platform dev environment like Titanium - would it be in the realm of display errors (e.g., UI elements or fonts aligning or being sized oddly) or would we be locked out of certain kinds of functionality if we stuck with a cross-platform approach? Likewise, if we did a web wrapper approach?

 - Leilah


For more options, visit https://groups.google.com/d/optout.

Anthony Perritano

unread,
Oct 22, 2014, 12:51:09 PM10/22/14
to educ...@googlegroups.com, Priscilla Fernanda Jiménez Pazmiño
On Oct 22, 2014, at 10:31 AM, Leilah Lyons <lei...@GMAIL.COM> wrote:

Thanks, all, for the feedback.

The reason for the question is that we're partnering with a museum that has already built a prototype mobile exhibit support system using Titanium to develop the front-end visitor experience (see http://www.21-tech.org/wp-content/uploads/2014/10/2014-09-02-19.42.00-576x1024.png for a screen shot), and Wordpress to allow museum staff members to contribute content to the system (things like short how-to videos illustrating how to use the exhibit, extra images and text explanations of the science, etc.). We were trying to decide if we wanted to work with what they already have built, or if we wanted to develop our own parallel system. I hesitate to start from scratch if the workflow is already working for them, but they had their prototype system built by a bunch of summer interns so ultimately we'd be on the hook for any and all further dev.

My guess is that for such a simple UI, Titanium might be perfectly adequate? The only new type of mobile UI elements we'd be adding are feedback buttons (think those 0-5 star ratings widgets), a data-driven dynamically-generated list of items to review (we want interpreters to be able to see a full list of which media elements they displayed during a day's work and provide said feedback on the media), and - possibly - the ability to push an event to the mobile from a server to remind the person using the mobile to access a particular media element at a particular time.

Some of my reluctance to commit to the existing prototype approach, though, is because I don't yet have a sense for what *kinds* of errors might arise from using a cross-platform dev environment like Titanium - would it be in the realm of display errors (e.g., UI elements or fonts aligning or being sized oddly) or would we be locked out of certain kinds of functionality if we stuck with a cross-platform approach? Likewise, if we did a web wrapper approach?


Thats an interesting question. It seems that you are dealing with a diverse ecology of android and iOS devices and you want them to have an engaging user experience coupled with the exhibit. The concern with display errors for different sized devices has dogged app developers for a long time. Being 2014, we finally have productive and efficient tools for solving this. I don’t know the dev environment of titanium. But i do know if you are concerned about the look, feel, and interaction, the tools for android and iOS give developers the ability simulate the apps at different sizes and easily scale the interface. Complete control. In addition, both these tools give developers the ability to produce a universal binary that can be used on a tablet and a phone.

It does seem like a simple app at the moment, but can titanium support all the additions you want in the future like video? You would want to that natively. 

-Tony 



Jim Slotta

unread,
Oct 22, 2014, 1:22:27 PM10/22/14
to educ...@googlegroups.com, Priscilla Fernanda Jiménez Pazmiño
developer time also factors into these discussions.  We have typically used Web-based solutions because of their cross-platform ("lowest common denominator") accessibility, but also because of speed of development.  Everything about client-side development takes longer, and I know there are incentives to make that commitment , but... depending on who the customer is, how much time and money they have to spend, etc - this can be a big factor.  

Also, as Tony points out, some of the best of the client world may not be available to a Titanium project - frustrating the developers who would be trapped in the titanium cage, so to speak.  Its fun to design and build for rich clients, because you get to leverage the strengths of local processing and UI features. BUt if its really simple screen content, voting, etc - a Web platform is quicker and more bullet proof (as matt says - you can wrap it in a thin client lke phonegap at the end, or just use the browser).  

jim

Noah Paessel

unread,
Oct 22, 2014, 2:01:30 PM10/22/14
to educ...@googlegroups.com
Concord recently wrapped some SmartGraphs [1] activities for tablets using Cordova [2]. This was our first mobile application, and Cordova worked well for our specific case, though we have some grievances.

We submitted our first app to the iTunes store in the first week of development. Tuning things for Android (and its multiple hardware / OS targets) took longer. After one month of two developers though, we had our first App released in both the Google Play and Apple stores.

We were lucky because:  

* We had an existing authoring system that let non-developers tweak activity content, and a build process that quickly scraped the new authored content into the app. This let non-programmers manage content for the app easily.

* We had an existing web application (built several years before) on Sproutcore, that was specifically designed to support mobile devices.

Bad parts: 

* Sproutcore is kinda funky and getting long in the tooth. It might have added some build complexity for us.

* Cordova's dev community is quiet. There aren't too many stack exchange articles, &etc.  The documentation seemed incorrect or or out-dated sometimes.

* The Android product matrix is kind of large an intimidating.

* Apple's quagmire of certificates and provisioning profiles was somewhat cumbersome.


Recommendations:

* If the the existing web app looks reasonable on the devices you are targeting? If so, I would recommend something like Cordova. Estimate how hard it would be to change the site so it looked good on mobile browsers, and then how hard it would be to add the mobile specific features you want using Cordova's mobile api.

* Figure out what sub-set of the android universe you want to target, support, and test on.

* QA your IOS builds using testflightapp.com

* If you are having trouble with Cordova on Andrdoid platforms, try out Crosswalk [3] from intel.

Good luck!




Concords SmartGraphs mobile Apps (Tablet only):
    Play Store → http://bit.ly/1vNQJvr 
    iOS Algebra → http://bit.ly/1x9Dun6 
    iOS African Lions → http://bit.ly/1vNQUHa

Reply all
Reply to author
Forward
0 new messages