Costs and complexities of development depend on these major factors:
Which One?A poll of 500+ Infoq readers (last I checked on 1 June 2013) resulted in this rating of cross-platform mobile tools. The pattern of ratings has a relationship between being adoption ready and importance in the marketplace. JQuery Mobile with PhoneGap (Apache Cordova) seems to be the most popular. |
Option | A. Language | B. IDE | C. Cross- Platform | D. Web | E. MDM | F. UX Intensity | G. HW Access | H. Rev. Model | I. App Store |
---|---|---|---|---|---|---|---|---|---|
Native Apple | Objective-C | XCode | - | - | - | - | Direct | $200/yr /dev. | |
Native RIM | Java ME | Eclipse | - | - | - | - | Direct | Free | |
Native Android SDK | Java SE | Eclipse | - | - | - | - | Direct | Free | |
Native Android NDK | C | - | - | - | - | Games | Direct | Free | |
MoSync | C/C++ | Eclipse | Yes | - | - | High | Direct | GPLv2 | |
Android S4LA | Various | - | - | - | - | - | - | Included | No |
Pyxis | Lua | Forms | Yes | - | No | Mostly Forms | ? | per-Server License | |
Web IDE | Config. | Forms | - | - | - | - | - | ||
RhoMobile | Ruby + JavaScript | RoR | Yes | HTML5? | Motorola MSC | DB Forms | Limited | Licenses | |
Sencha | ExtJS JavaScript | Designer, Aptana | Webkit HTML5 | - | Yes | Charts Graphs | PhoneGap | Commercial | |
PhoneGap | jQuery JavaScript | - | Yes | HTML5 | Worklight | - | The Focus | Open Source | |
Adobe | ActionScript | - | Yes | ? | - | Good | ? | Commercial | |
Microsoft | C# | Visual Studio | Mono 4 Android | IE9? | - | XNA (XBox) | via JNDI | Commercial | |
Basic4Android | Visual Basic 6 | - | - | - | - | - | - | Commercial | |
SAP Sybase | Native code templates | Workflow Designer | Yes | Yes | Yes | - | ? | Commercial | |
Syclo | code- free | - | Yes | Yes | Yes | - | Custom | Commercial | |
Antenna | - | - | Volt | - | Yes | - | - | Commercial | |
Kony | Lua | Eclipse | Rule Editor | Yes | Yes | - | Custom | Commercial | |
Spring Wireless | - | - | Yes | Yes | Yes | - | Custom | Commercial | |
Verivo | - | - | Yes | HTML5 | - | - | Custom | Commercial |
Listed here for comparison.
Dalvik is a fishing town in the North part of Iceland,
home to ancestors of Android OS developer
Dan Bornstein?
The low-level language and
TOOL:
Smali and baksmalli
are named from the Icelandic equivalents of
"assembler" and "disassembler".
Re-Engineering Android Applications
shows how the Twitter app can be analyzed
and hacked to steal userids and passwords.
Dalvik Virtual Machine Internals @ Google I/O 2008,
Dan Bornstein
describes how he made his interpreter
more efficient.
Java programs for Android are first compiled using the Sun Java SE compiler progam javac.exe. The bytecode from this is compiled again using the Dex Compiler "dx" tool to create bytecode in .dex files, which Android runs using its Dalvik VM (instead of the Oracle/Sun JVM which also runs on PC servers),
This was necessary to optimize the VM for the low 64MB heap memory and slow CPU on mobile phones today.
CAUTION: Unlike the Sun/Oracle JVM, DVM (Android OS ), application processes are automatically killed not just to to make room in limited memory, but also every time the screen is rotated.
Each app runs in its own "sandboxed" process and VM instance.
So apps need to save and restore state often.
C-language coding access low-level JNI (Java Native Interface) functions compiled by the Android NDK (Native Dev. Kit) installed to folder /opt/android-ndk.
Many games are coded this way, for better speed/responsiveness.
A Java app can make use of compiled binary (machine code) .so files (like a Windows .dll) created by the NDK and placed in the ./libs/armeabi folder.
To list symbols in an .so file:
cd android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/ arm-linux-androideabi-nm ./path/to/libfoo.so
TOOL: MoSync (based in Stockholm, Sweden) uses a porting approach. Its Eclipse-based developer environment used to develop C/C++ code which their open-source compiler reads to generate native code for various mobile platforms.
They charge $299 per developer seat per year.
MoSync is able to access all aspects of hardware on Android phones. However,
BLAH:
MoSync is blocked from accessing some hardware features
on iOS, its Numeric and Qwerty keypad input, and Bluetooth, and NFC.
TOOL: SL4A (Scripting Layer for Android) are (at time of writing) alpha maturity facades which wrap parts of Android's APIs via JSON RPC calls for exposure to interpreters:
APP:
Locale
runs scripts such as
this example makes placing the phone face down disable the ringer. Turning it face up again enables the ringer.
Although this particular feature has since been added into the base Android code,
it nonetheless is handy.
Some claim that one doesn't need to know programming if you use their tool.
TOOL: Pyxis Mobile (from Waltham, MA) provides an ambitious MEAP (Mobile Enterprise Application Platform) App Studio, a drag-and-drop Windows software to define design used to generate native code applications for diverse devices. Initially their marketers say no "coding". But they've since added Lua scripting. The platform also includes delivery to various networks throughout the mobile solution lifecycle. Best of all, Pyxis figured out how to get changes to devices without fuss by end-users by creating an app that parses requests, so no re-deployment. This they claim provides greater agility. Ingenious.
BOOK:
App Inventor -
No Experience Required
by Jason Tyler
TOOL: Cloud9
TOOL: StackMob automates back-end server-side code development which communicates with mobile REST API using schemas providing Push Notifications, Facebook & Twitter log in functionality. It makes easy server deploy, analytics, and scaling.
TOOL: Feed.nu generates apps from a WordPress blog.
TOOL: $29/month MyAppBuilder
TOOL: RhoHub
This section is based on
VIMEO:
Beginning Rhodes 3.1
Using Rhostudio
by Brian Moore
Sarah Allen,
Vidal Graupera, and
Lee Lundrigan
wrote
BOOK:
ISBN:9781430228684
Pro Smartphone Cross-Platform
Development iPhone, Blackberry,
Windows Mobile and Android
Development and Distribution
(Apress, 2010, 289 pages)
BOOK:
Rhomobile Beginner's Guide
Packt, 2010
by Abhishek Nalwaya
RhoMobile
Docs,
Wiki,
Vimeo,
Google Group,
StackOverflow,
IRC,
Twitter
Adam Blum (@adamblum), CEO
AOTW, limited functionality (menu, toolbar, tab bar only) can be generated on RIM (BlackBerry 4.6, 4.7, 5.0, 6.0) , Windows Mobile 6.1+, and Windows Phone 7 (via Visual Studio 2010 + Windows Phone Developer Tools and IronRuby).
The 486MB RhoStudioInstaller 1.2.1 contains Samples, DevKit, and Eclipse Plug-ins Ruby 182-15 and Rubygems (rake), Redis NoSQL (key-value store), GNU Make, and Git 1.7.6 (in Program Files (x86)).
DO THIS: Windows Start > Programs > RhoStudio invokes the Eclipse instance installed.
RhoMobile was acquired Oct 2011 by Motorola Solutions (MSI) -- not the Motorola Mobility that Google acquired. It makes money from licensing its RhoConnect server software for two-way data synchronization and encryption, plus remote phone-wipe capabilities. (Server prices reportedly start at $5,000 for 100 users). RhoConnect Ruby servers can run in the Heroku public cloud managed by SalesForce.com. But those who don't use enterprise REST async features in Rhoconnect syncserver (using Sinatra ARB instead) don't pay.
DO THIS:
In New > Project > Rhomobile select wizard Rhodes application, not the Rhoconnect application.
Alternately, use command line > rhogen app newappname
This generates a folder structure different than stock Android apps but familiar to Ruby on Rails (RoR) developers:
icon folder contains ico, png, svg files.
public folder contains static css, images, libraries (jquery, js, jmobile v1.0rc1).
app folder contains files generated for models, views, and controllers.
Typical of RoR (Ruby on Rails) apps,
RhoMobile folllows the MVC (Model View Controller) development pattern
(which even Microsoft has embraced for its maintainability and understandability).
To generate a data model a command line program (written in C++ with the Android NDK) is available, but interactively in Eclipse,
DO THIS:
Select the new app name.
In File > New > Rhodes Model define model name (in singular form like "Product" with initial character in upper case),
type Model attributes -- fields/columns such as "name,brand" (with no spaces between them).
Alternately, use command line > rhogen model product name,brand
This generates under the app folder a folder containing the .rb model file defining the model class and an include for the Rhom:PropertyBag. Rhom is the ORM (Object Relational Mapper) The controller.rb file defines generic actions: new, edit, delete, index (find), show (by id).
Notice that generated apps look follow Apple's UI conventions, with buttons on the upper right to proceed and upper left to reverse.
WARNING: Access to new models generated must currently be added manually to the app's landing page (index.erb) in the app/test folder (also containing the app's application definition in application.rb). Replace:
<li><a href="">Add link here...</a><li>
with
<li><a href="Product">Products</a><li>
RUBY CONVENTION: Models are named internally in single case, but referenced publicly in the plural.
DURING TESTING: Check for models defined but not added to the initial index.erb page.
DO THIS: Define Run Configurations such as "Android_2.1_RhoMobile" for the various selections, and Run it.
WARNING: Code generated doesn't have edits on any field, but at least you are up and running minimally, using the default login and other behaviors provided by the Settings controller.
WARNING: Code generated are not internationalized. Text visible to users are in-line within code rather than in separate localizable resource files.
Each action has an ERB (Embedded Ruby) template file which define screen layout views -- HTML containing <%= ... %> mark-up which references assets such as class="ui-btn-right".
DO THIS: Download the mimified version you prefer of jQuery and jQueryMobile.
TESTING:
Having default UI objects makes it possible to define hooks just one time for automated testing.
Having default behaviors allows focus on customizations rather than basic functionality, such as the main/happy path:
A button for the next usual action is on the upper right.
An arrow button is provided for each list item. Click it.
A button to return to the previous (such as home) is on the upper left.
Click New, enter all fields, and Create.
An alternative path is to edit, then immediately click Cancel. This tests the default functionality, not custom features.
To populate data over and over again:
TOOL:
Ruboto to run JRuby scripts on Android, by Scott Moyer.
Among the
apps built in Rhodes, source code is available for
Wikipedia Mobile app, built by
Hampton Catlin in Rhodes using 20% of the lines needed in Objective C.
However, subsitute cross-platform code by referencing instead the cross-platform js, css, and images within open-source
jQueryMobile library downloaded in zip files and expanded.
This references the mimified version of jQuery, so download it as well.
app/test/layout.erb should also now contain a binding:
<link rel="stylesheet" href="/public/jquery.mobile-1.0a3.min.css" /> <script type="text/javascript" src="/public/jquery-1.5.min.js"></script> <script type="text/javascript"> $(document).bind("mobileinit",function(){ $.extend( $.mobile , { loadingMessage: false }); }); </script> <script type="text/javascript" src="/public/jquery.mobile-1.0a3.min.js"></script>
Production versions should reference the CDN versions???
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" /> <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> <script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
WARNING: JQueryMobile reached v1.0 maturity on 15 Nov. 2011.
The Controller renders using a Webkit engine. JavaScript generated makes use of LIB: JQuery Mobile version 1. But Sencha can be used instead.
RhoStudio displays a Web Inspector along with the emulated app.
RSpec
is provided as part of RhoSync.
DOTHIS:
Define test_query methods.
Run spec spec/sources/feed_spec.rb
Rho was written in C, so native access such as the Accelerometer require a C interface implementation.
DO THIS:
To compile and run in the iPhone emulator from the command line:
rake run:iphone
jQ.Mobi from
jqmobi.com rewrote jQuery.
appMobi HTML5 XDK to create, debug, and build HTML5 apps on the Chrome browser.
SenchaInc videos
Sourc{ 2011 Europe
SenchaCon 2011 Vimeo videos
Sencha Touch in Action by Jesus Garcia, Anthony De Moss, and Mitchell Simoens.
Matthew David wrote
BOOK:
Using Sencha Touch To
Build A Mobile Website
and jQTouch
BOOK:
Html5 Mobile Websites:
Turbocharging Html5 With Jquery,
Sencha Touch, And Other Frameworks
Creating Websites For IPad and
Android Honeycomb Tablets
cache manifest manages caching of resources.
http://pmuellr.github.com/weinre/ opens a debugging window on webkit browser DOM.
BLAH: Whereas jQuery Mobile aims to support as many platforms as possible, Sencha Touch is only focused on WebKit (only for HTML5 browsers Google Chrome or Apple Safari). So, in 2011, some fear betting the farm on the small fraction of devices supporting HTML5 and CSS3 (with the sassy).
But hey, that may be its advantage!
The time that developers need to stay proficient on all the languages and platforms involved is better spent on improving product features. A single code base for web and all relevant mobile platforms might be more efficient overall.
A powerful advantage of AJAX enabled by Sencha's Ext JS 4 library (which uses JSON/P and YQL behind the scenes) is dynamic JavaScript code loading (injection), which reduces initial app load time, memory, and code changes without updating the app, which are hugh.
The Sencha library adds additional touch events like tap and hold, swipe, rotate, drag & drop. A big draw for Sencha (if you pardon the pun) is its line and bar charts built into EXT JS.
This should be in Market.Android.com, but it's not.
However, the 200+KB of downloads for a HTML5 web page can be packaged into a regular app with a desktop icon like other native apps. The HTML5 can then be submitted for display on marketplaces.
BLAH:
Since Sencha Touch is focused on HTML5,
when loaded on Microsoft Internet Explorer,
a blank page appears.
How well will it support upcoming devices, such as Microsoft IE9 on WindowsPhone8?
IE9 on Windows Phone is lagging behind on support of
HTML5 and CSS3
features.
Why doesn't Sencha use Modernizr
to detect browser and adjust javascript accordingly?
Sencha developers all work on Macs,
so its SDK initially only work on Macs, not Windows.
Sencha training makes use of a Ruby server and
Apatana IDE (acquired by Appcelerator in 2011).
Sencha Touch makes use of JS wrapper from PhoneGap to access native hardware components and services (such as camera, contacts, etc.).
BLAH: There are also other dirty little secrets, like browser zooming not being supported.
BLAH:
A Sencha's Complete license is $995 per person.
Unless you pay, you can't get into the
Private Premium Forums
where some of the REAL answers are.
Some criticize Sencha's making their "open source" licensing model stricter
over its history.
Sencha.io Data synchronizes local data with the cloud so that users always have access to app data even when the network is not available. This also enables users to share data with other users and with apps running on other devices
Sencha.io Messaging lets users send and receive one-to-one and one-to-many messages from within mobile apps.
Sencha.io Deployment provides version management, management tools, usergroup management services, and app delivery through the Sencha app repository, Senchafy.com.
This being said, Sencha's use of classes is brilliant in that it enables much better potential for automatic memory management, user responsiveness, and bug avoidance :
With its commercial license money, Sencha provides a server which automatically re-sizes images ... for free, at:
This automatically shrinks the image file specified based on the
aspect ratio of the image and the
user-agent
string (sent invisibly) in its HTML header.
The src4 can be changed to src1 for download parallelism.
The "landscape" to swap X/Y constraints can be changed to
"portrait" or removed (along with the extra slash).
A Google Chrome browser running on a Windows Vista machine has:
An Android Samsung Galaxy S2 smartphone has :
An Android Samsung Galaxy Tab 10.1 tablet has:
Appcelerator Titanium (for $199 per month) has
Mailing List / Google Group,
API Docs,
Wiki
Github code
BOOK: ISBN-10: 143022620X
ISBN-13: 978-1430226208
Beginning Smartphone Web Development:
Building JavaScript, CSS, HTML, and
Ajax-Based Applications
for iPhone, Android, Palm Pre,
BlackBerry, Windows Mobile, and Nokia S60,
(Apress; January 13, 2010)
by Gail Rohn Frederick
(of learnthemobileweb.com)
and
Rajesh Lal
If you would rather code in JavaScript, open-source PhoneGap.com, generates apps on various mobile platforms displayed on a HTML5 web window (with gap:// protocol HTTP request interception services). They deprecated Windows Mobile and Blackberry 4.2.
Integration with Dreamweaver® CS5.5 made it easy for Nitobi to be acquired by Adobe Oct. 2011. The annoucement also includes open-sourcing the product.
PhoneGap Cordoba-1.x.x.js library in /assets/www and cordoba...jar in /libs referenced by import org.apache.cordova.*;
xml in /res folder.
Instead of import android.app.Activity; extends DroidGap.
CAUTION: Why does PhoneGap need permission to READ_CONTACTS and WRITE_CONTACTS?
WEBSITE: TOOL: worklight.com/ offers Eclipse a plug-in to develop PhoneGap-based code for its java-based gateway server from IBM. It provides a server console.
Worklight makes use of jQuery Mobile.
Adobe Air, Flex, and Flash Builder 4.5 for iPhone, iPad, and BlackBerry PlayBook, and Android has push capabilities built-in. This approach requires a different set of source code for each platform.
Wallace B. (Wally) McClure of
scalabledevelopment.com
WEBSITE:
Wily
wrote these books:
BOOK: Professional iPhone Programming with MonoTouch and .NET/C# Wrox; 1st edition (July 13, 2010)
BOOK: Professional iPhone Programming with MonoTouch and .NET/C# Wrox; 2nd edition (Feb, 2012)
BOOK: Professional Android with Mono for Android by Reto Meier – Pro Android 2 by Wrox
BOOK: Learning MonoTouch: A Hands-On Guide to Building iOS Applications with C# and .NET Addison-Wesley Professional, August 4, 2011 by Michael Bluestein
Scott Olson,
John Hunter,
Turid H. Horgen,
Kenny Goers wrote:
BOOK:
ISBN-10: 1118157702 | ISBN-13: 978-1118157701
Professional Cross-Platform Mobile Development in C# [Paperback]
(Wrox, February 28, 2012)
This is a great approach for those also using VB to write test code in HP QTP (Functional Tester).
For those who want to program in the Basic language,
TOOL:
Basic4Android.com
from
Basic4PCC.com
is a client IDE for writing Android app code without semicolons ;)
$99 for a single developer get 2 years of upgrades (after a 30-day refund period).
$49 Academic licenses/basic licenses get 2 months of upgrades.
Surprisingly complex apps can be created with this tool.
BLAH: Microsoft no longer supports VB6 in Visual Studio. So developers are still using the old IDE.
Sybase, after being acquired by SAP in 2009, is being used for development of SAP's Unwired (mobile) devices (Windows Mobile, Symbian, Blackberry initially) on the public networks connect thru Relay Server load balancers and reverse proxies to SAP Unwired Platform (SUP) servers -- the middleware component providing the run-time infrastructure.
To avoid opening ports in the internal firewall, a RSOE (relay server outbound enabler) on SUP servers make outbound connections to the Relay Server in the DMZ.
Afaria clients on devices communicate with Afaria servers for MDM (mobile device management) and to provide SSO (Single Sign On), and security such as remote data wipe on devices.
SUP 2.1 native server clients communicate via ODP (On-Demand Portal) SDKs to existing SAP NewWeaver Gateway 2.0 servers on the back-end.
The Sybase Control Center provides a console for administrators to administer, manage and monitor SUP servers.
UltraLite® databases (ULDB).on devices store synchronizations with Sybase Unwired Platform.
SUP clients access 3rd Party back-ends Data Services using JDBC, REST, WS web services served by a single consolidated database (CDB).
Devices use oData (via REST). The MBO (Mobile Business Objects) API abstracts back-end data sources device clients talk with. Modeling of Mobile Business Objects is done using the Sybase Unwired Workspace
An MBO can be a JDBS database, RFC via JCO, SAP system, REST Web Service, etc. This is great for prototyping with a database first, then attaching (bind) to an actual SAP system later. “create, update and delete” (CUD) operations are defined as MBO attributes in the Mobile Application Diagram and palette.
The data persistence library to access and store object data in the database on the device is controlled by code referencing the generated Client Object API.
STAR: One unique feature with SAP's mobile architecture is the Mobile Workflow Forms Designer which defines workflows (sequences of business processes) associated with email or data change notification (DCN) from a master account.
Optionally, the Sybase Device Application Designer graphical WYSIWYG editor can be used to protype apps.
Native code on devices (logic code and UI) are generated from MBO definitions based on Platform Code Templates, then pasted into the IDE for each mobile platform
SUP 2.1 added Hybrid Web Container (HWC).
Syclo was rated highest for "ability to execute" in Gartner's April 2011 MEAP report.
Since then they were bought outright by SAP.
Syclo is used to build apps running on SAP SUP.
Syclo offers pre-built apps.
It has collaboration and project management tools.
Syclo's HQ was at 1721 Moon Lake Boulevard, Suite 300, Hoffman Estates, IL 60169 USA +1 847.230.3800 Jon H. Schmidt
Magic Software's Mobility Platform may not be complete, but its ambitions seem to be. This Isreali company leverages its enterprise integration background to mobile. So its people know the importance of encryption and data management. It's starting with Blackberry devices.
Currently, apps cannot run stand-alone without a connection.
Antenna Software acquired Dexterra of Bothell, Wash. in 2009; Vaultus for HTML5-oriented code generation.
Antenna has a relationship with ATT
Its Antenna Mobility Platform (AMP) its cloud-based platform.
Based in Jersey City, New Jersey
This company focuses on field service and sales force automation such as Salesforce.com.
Strength in Scheduling.
KonyOne, claims it does everything. Their Eclipse-based cross-platform IDE studio helps the creation of a single code base programmed in the Lua programming language (like JavaScript) from which Kony generates native code in 7 OSs OR HTML5 OR WAP/WML browser apps.
Kony handles HTML anomalies by serving what is supported by user's browser type and version.
Kony's Eclipse-based IDE (called Studio) provides a drag-and-drop property-driven design interface. Its Lua script editor provides code autocomplete hints and includes a Quick Preview utility, an inline debugger, and code profiler. It comes with cross-platform widget libraries, but can also leverage other JavaScript development libraries such as JQuery Mobile, Sencha Touch, SproutCore, Node.js.
Even though Kony was first released in 2007, it generates code for multiple channels, including mobile, SMS, web and desktop as well as any device.
Kony generates code
understood by recent RIM Blackberry and some 2G phones
which can read
XHTML MP (eXtensible HyperText Markup Language Mobile Profile) formatted according to a simplied version of CSS2
-- WAP CSS (WAP Cascading Style Sheet or "WCSS")
defined by WAP (Wide Area Protocol) 2.0 standards from the
OMA (Open Mobile Alliance) (previously called the WAP Forum).
WARNING:
Kony does not generate WML (Wireless Markup Language) and WMLScript rendered by WAP 1.0 browsers on
the many "ancient" WAP 1.0 wireless devices (from Nokia and Sony Ericsson T610)
still in use around the world.
TEST:
Many WAP 1.0 website rely on
transcoding of HTML/CSS web sites, an often error-prone situation since
WAP 1.0 does not support CSS on those tiny screens.
Ordinary Web browsers such as IE7 can also read WAP2.0 applications during prototyping and development. Since WAP 2.0 is backward compatible to WAP 1.x, a WAP 2.0 wireless device can be used to visit both XHTML MP / WCSS and WML / WMLScript sites.
WARNING: Client-side scripting is not available for XHTML MP until future mobile devices support ECMAScript Mobile Profile (ESMP) a client-side scripting language which back-supports to restore WAP 1.0 WMLScript functionality lost in WAP 2.0.
Whether an app is deployed by Kony as native or HTML5 (either server-fed or as a SPA) is specified at the form level.
Kony uses native 2D Graphics APIs to implement UI widgets with dynamic skinning. So an iPhone-style tab bar can be displayed on a Nokia or BlackBerry device even though such UI is not provided in their native development model.
Kony has a J2EE middleware server to provide server-push capability.
Its development center is in Hyderabad/Secunderabad, India.
Its sales office in the USA is at San Mateo, CA and
7380 West San Lake Road #390, Orlando, FL 32819
Tel: 1-321-293-KONY (5669)
Sriram Ramanathan is Kony's CTO
On Jan. 2011 Kony Solutions obtained a 2nd-roudn $19.1 million from Insight Venture Partners.
Spring Wireless
Corona SDK uses the simplified Lua programming language> to create apps that use low-level OpenGL code on iPhone, Android, Kindle. Its SDK is based on OpenAL, Google Maps, Box2D physics, etc.
Mobile App Development Made Easy Using Corona SDK 7.5 hour $99 video course at Udemy
Business apps using Corona video course on at Udemy comes with complete source code for an app.
RunRev used KickStarter to funded a rewrite to open source of their commercial LiveCode product. The $500,000 will enable the Windows and Mac dual-platform desktop product to generate apps on Windows Phone as well as iOS and Android
Currently though, the product is $999 after a 60 day trial.
Their technical strategy is to make programming easier by allowing English-like pseudo-language. Their Game Academy appeals to kids who want to create games without the overhead of learning obscure symbols and complicated structures.
Less coding means less mistakes and testing. However, the concern with any high-level language is whether a developer will "fly into a brick wall".
CEO Kevin Miller, based in Edinburgh, Scotland, used Apple's HyperTalk as a youth, and later acquire much of the technology in 2003.