You've developed your Titanium application, published to the app store, and started thinking about doing more. In this session, you'll learn some of the architectural and code related tips for using Titanium as a platform for building a suite of similar products for your venture. Perhaps you want to make that extra feature available as an in-app upgrade, or provide HD sound as an option to your users. Whether it's for the enterprise or for the consumer, we'll look at tips n' tricks for extending and evolving your app.
In this session, we'll cover databases, switching user-content based on data, doing upgrades over the air, building an "app suite platform" using Titanium, managing upgrades, migrating data between versions and more. Strap yourself in for a fast-paced session!
5. “We can only see a short
distance ahead, but we can
see plenty there that needs
to be done.”
-Alan Turing
PRATIK PATEL | CTO
6. 5 quick guiding
priciples for MAX
1. Refactor fearlessly
2. Let architecture emerge
3. Be careful of the LCD
4. Keep it in sync
5. Make it work, make it right, make it fast
(then go back to #1 and #2)
PRATIK PATEL | CTO
7.
8. EVOLVE
• TripLingo started as a single App
• We knew we’d have 50+ of the same “app”
• Also variants for each platform
• But we didn’t engineer for it upfront
• We waited till it was needed to do this
PRATIK PATEL | CTO
9.
10. IMPLEMENT
• DB Driven content
• Cross-platform.js to abstract nuances
• Border-flex layout for screen sizes
• Migrate data between app versions
PRATIK PATEL | CTO
13. Example: B - F Layout
var topLeftButtonImg = 'imgs/nook/db_btn_golearn.png';
var topRightButtonImg = 'imgs/nook/db_btn_wordbank.png';
var mainButtonsTop = 550;
var middleRightButton = triplingo.ui.createButton({
...
right:10,
...
});
var middleLeftButton = triplingo.ui.createButton({
...
left:10,
...
});
PRATIK PATEL | CTO
14. Example: DB Migration
// version your database as it is NOT overwritten on install
(necessarily)
old_db = Titanium.Database.install(currentLanguage
+ '/pl.db', 'oldDB');
new_db = Titanium.Database.install(currentLanguage
+ '/pl.db', 'currentDB');
migrate (old_db, new_db);
PRATIK PATEL | CTO
15.
16. AUTOMATE
• Scripts to reduce the mundane stuff
• Hand off to non-tech people
• Allows time for new features
PRATIK PATEL | CTO