Archive for April, 2012

Featured Developers – William Martinez & Kosuke Isobe

Wednesday, April 25th, 2012

Editor’s note: Sharry Stowell is the editor of Learning Titanium, where he frequently comments on the latest contributions of the Titanium community.

Hey guys, hope you’re playing with the latest release of Titanium as there are have been some great features added including ACS (Appcelerator Cloud Services). This week my featured developers are from different sides of the globe; William Martinez is based in the US and Kosuke Isobe is from Japan.

They have stood out from the crowd with their app development skills and helping to contribute to the Ti community. I’ll talk about William & his FaceTouch App and then I’ll discuss Kosuke’s contribution of the TiPlatformConnect OAuth library.

I noticed the FaceTouch App a number of months ago via the Q&A section, I downloaded it & had a little play – I loved it, my 3 year old even loved it! I updated to the full version a few weeks ago & noticed a number of new features, the great UI is so easy to use. If you haven’t already, I advise downloading it free from the AppStore.

“Facetouch is a really funny photo booth studio! You have hats, wigs, glasses, hair, beards and a lot of fashion accessories to make people or pets look just awesome in your pictures! Transform your pictures in a fancy and simple way. Facetouch has a lot of real-like high definition, carefully and well-designed objects that include even shadow … Just chose an object and zoom it, rotate it, move it and scale it to make it fit in your picture!”

William’s team (@inzori) has worked with clients from all around the world for the last 15 years. They speak English, Spanish and Swedish fluently.

Interview with William Martinez

1) What gave you the idea to create your FaceTouch app?
We’ve created a small puzzle game for my kid where you have to place shapes where they belong, recognize objects like forks, knives and glasses and arrange them on the table, etc… That was the kick off of FaceTouch.
Once we learned how the drag and drop, scale, rotate, flip, place, etc any object with Titanium, we found that we had built a nice engine to ‘easily’ build these kind of applications over it.

We wanted to create some realistic face booth application. We found that most of the existing similar applications at the appStore work with cartoons, drawings and poor quality graphics… no real life pictures or accessories… some are funny but you get no real looking results. … we decided to go for it.

2) Why did you choose the Appcelerator Titanium route?
Titanium is the easiest and fastest way to create an iPhone/iPad high quality application. Although the iOS SDK is not 100% mapped, you have almost everything you may need to deliver your application to the AppStore, and you may find or create a module if you don’t.

3) How long did it take to design, create, test & deploy the app?
We decided to co-work with a professional design this time.
The results are amazing as you can see, a full HD application ready for iPhone and iPad, however, it took a lot more time to finish the application as designers are really … how to say it… they like their work to look not just good but perfect.
As you know we (developers) are not that kind of person, we want things to be finished fast and it’s ok as long as they work as supposed :) … so … as the designer went over and over again through the same screens, changing colors, changing buttons and moving a pixel from here to there… we had the time to create more and more features, create ObjectiveC modules, etc.

So, it took almost 2 months to finish the first version. Our beta testers did a great job! They were our friend’s kids, my kid and ourselves that had a funny time doing our “job”.

After 3 months we decided to go live at the AppStore and continue working with a lot of new objects and functionality for a new version.

4) What parts of the Ti API did you use to create the user interaction?
Well… I can tell you which parts we did not use… that would be easier! I think we have used almost every part of the API but Android specific parts.

5) Have you developed any other apps in Titanium if so, what are they?
We have developed two other public applications:

  • Undercover Media – a highly customizable application that records audio/video and takes pictures without being noticed. You can even browse the web while you are recording video!
  • Visual Noise – a free application that is part of a bigger project that may help people with hearing problems. This application is really a rip of the alert system where a vibration/visual alert is raised when a noise peak is detected. We decided to deploy it to the appstore and see if we could get some feedback and suggestions from users.
  • Private applications – we have also developed three private applications like a payment gateway for a mayor online payment company and two other very specific applications requested by clients.
  • MarketPlace – we have developed some Ti modules that you may find here.

Real world app code example

William has kindly sampled some of his code from within the actual help to other Ti Devs:

[app.js gist]

Titanium.App.ISIPAD = Ti.Platform.osname == 'ipad';
Ti.include('/programs/main.js');

var ff = {};
ff.app = {};
ff.ui = {};

// create tab group
ff.app.tabGroup = Titanium.UI.createTabGroup({
backgroundColor: '#000'
});

// create the main home screen (this function creates the home screen and is defined in main.js)
ff.app.mainwin = ff.ui.createMainWindow();

// create loading window "splash"
ff.app.loadWin = Ti.UI.createWindow({
top:0,left:0,right:0,bottom:0,
tabBarHidden: true,
navBarHidden: true,
backgroundImage: Titanium.App.ISIPAD ? 'images/background_splash_ipad.jpg' : 'images/background_splash.jpg' ,
fullscreen: true,
url: 'programs/splash.js',
tabGroup: ff.app.tabGroup, // pass the main tabgroup
mainTab: tabMain // pass the tab where main is
});

var tabLoad = Titanium.UI.createTab({
window:ff.app.loadWin
});
var tabMain = Titanium.UI.createTab({
window:ff.app.mainwin
});

ff.app.tabGroup.addTab(tabLoad);
ff.app.tabGroup.addTab(tabMain);

ff.app.tabGroup.setActiveTab(tabLoad);
ff.app.tabGroup.open();

[programs/splash.js gist]

var splash = Ti.UI.currentWindow;

// do whatever you want.. animations.. put a label "loading..." and animate it (remember to play with delays and durations to make this screen last longer)

// and when you finish loading, just change the active tab.

splash.tabGroup.setActiveTab(splash.mainTab);

Kosuke Isobe – TiPlatformConnect OAuth Library

Kosuke’s a web programmer for internet media business called OpenSmile based in Japan. He’s only been invovled in Titanium for a year after he got introduced to the Donayama blog. He has worked on a few Titanium Apps (Japanese Only), such as Prize info and Rock-paper-scissors game.

Have you ever wanted to allow a user to grant a third party site access to their information stored with another service provider, without sharing their access permissions or the full extent of their data, well read on….

I came across TiPlatformConnect on Twitter, it was a fork of @ebryn‘s great twitter-titanium library on Github. Kosuke explained to me that he “required OAuth of Twitter in my app. At such time, I found twitter-titanium. This library is very easy learn, I was able to incorporate my app immediately. Then, when connecting to other platforms, I have continued to use this to extend the library”.

He has expanded it front a Twitter OAuth library to the following:

  • Tumblr
  • Mixi (Japanese SNS)
  • Foursquare
  • Flickr (in development)
  • Github
  • Linkedin
  • Google
  • Etsy
  • Hatena

If you want to expand the usage of this great resource, please fork it and share all your findings with the Ti community.

A big thanks to my featured developers!

Code Strong

Launch Day Event Schedule and Webinar Links

Wednesday, April 18th, 2012

2.0 has launched, and Titanium developers are starting to play around with the new features in this release. We’d like to invite you once again to join us for some online events, coordinated with several of our live developer meetups.

Welcome to Titanium 2.0!

Thursday, April 19, 9am PST

Register for the webinar!

In this session, Appcelerator CTO Nolan Wright, Product Manager Jo Ann Bucker, and Platform Evangelist Kevin Whinnery will be on hand to discuss and demo the new features in Titanium 2.0, and discuss what’s next for Appcelerator in 2012.

Titanium 2.0 Overview (Europe)

Thursday, April 19, 10am PST

Register for the webinar!

In this session, Appcelerator Platform Evangelist Kevin Whinnery will present on what’s new in Titanium 2.0 for European developers.  Please stop in after your work day is through and ask your questions live!

Titanium 2.0 Overview (US East Coast)

Thursday, April 19, 4pm PST

Register for the webinar!

In this session, the Washington D.C. Titanium developer community will present on Titanium at a high level, and brief developers on the new features in 2.0 alongside Appcelerator engineers.  Drop in, learn, and ask your questions live!

Titanium 2.0 Q&A (Spanish)

Thursday, April 19, 6:30pm PST

Register for the webinar!

In this session, Appcelerator developers (in conjunction with the Mexico City Titanium Meetup) will answer questions specifically for Spanish language speakers. Si hablas español, únete a nosotros para este evento.

Titanium 2.0 Overview (West Coast)

Thursday, April 19, 7:30pm PST

Register for the webinar!

Live from our developer meetup in Mountain View, Appcelerator celebrates the release of 2.0 with our local developer community.  Presentations on what’s new in version 2.0 will be shared with the local crowd, and with other west coast audiences via webinar.  Join us to celebrate and learn about 2.0!

Titanium 2.0 Q&A (Japanese)

Friday, April 20, 4:30am PST

Register for the webinar!

Live from Tokyo, one of the most active meetup groups in the world will field Titanium questions in Japanese.  Please join us to ask your question live!

Thanks, and we hope to see you tomorrow!

 

 

Announcing Titanium Studio 2.0.1

Tuesday, April 17th, 2012

We’re proud and excited to announce the newest version of Titanium Studio. Version 2.0.1 not only integrates our newest cloud services directly into Studio, but includes hundreds of fixes, enhancements and improvements designed to make your development experience more enjoyable.

Studio 2.0.1 highlights

  • Appcelerator Cloud Services. Add cloud services either from the new project wizard or to an existing project.
  • Module Management: Manage directly from within the Titanium Studio GUI via the tiapp.xml editor.
  • App support: Third-party providers can now hook into our publishing workflow. App stores can register within the interface and allow simplified deployment from inside Titanium Studio to an online location.
  • Content Assist: No need to be save files in order to get content assist for your user-defined functions.  We’ve also added content assist on both hover and Dynamic Help for the Titanium API.
  • Xcode 4.3 support.

Other Useful Functionality

  • Type /** before a JavaScript function to automatically add a documentation header.
  • Jump from a function to its definition via the F3 key.
  • Right-click on a project to open the analytics for that application.
  • Scroll away from the bottom of the console to auto-lock.

New Views

  • A Snippets view that provides easy access to the complete list of snippets shipped with Studio, as well as simple ways to filter, preview and edit the list.
  • A Servers view for stopping, starting and restarting external servers used for preview.

Additional Changes

  • We’ve reworked the publishing workflow to make iOS and Android distribution more intuitive. Recently-run configurations will be added to the Run history so you can easily re-run them without needing to configure the wizard once again.
  • Emulators and Simulators now support custom launch arguments.
  • We now validate the whole project (as opposed to just the current file) as part of the build step, and we’ll warn you before launching if the current project has errors.
  • Studio also won’t index or validate any files under the “builds” folder.
  • Studio 2.0 is now built on top of Eclipse 3.7.2.

Read the Release Notes for additional details on all improvements available in this release.

Updating Titanium Studio

You should be automatically prompted to update your Titanium Studio software. If you do not see the prompt, you can select “Check for Updates” from the “Help” menu from within Titanium Studio.

Once you’ve updated Titanium Studio, you’ll then get an update for the Titanium Mobile SDK.

Titanium Mobile SDK 2.0.1 is available now

Tuesday, April 17th, 2012

Update: We released Titanium Mobile SDK GA Revision 2 earlier today as the initial 2.0.1 GA release was missing the Appcelerator Cloud Services modules (Titanium.Cloud and Titanium.CloudPush). Please install this version to receive the ACS modules if you installed the initial GA release.

Brace yourselves, Titanium fans. The latest helping of Titanium goodness, is now available hot off the update servers.

Titanium Mobile SDK 2.0.1 is now available.

We’ve been working on this feature release for last few months and I’m sure that you’ll find this release as exciting as I do.

Titanium Mobile SDK 2.0.1 builds on the strengths of Release 1.8, adding numerous new features, improving parity across different platforms and addressing over 700 issues. This release takes the Titanium platform to the next level but I will let you be the judge.

Highlights of the SDK 2.0.1 feature set include:

  • Integration with Appcelerator Cloud Services (formerly CocoaFish) to cloud-enable Titanium applications.
  • Mobile Web (formerly HTML5 platform) release candidate.
  • New Titanium Documentation Site with much improved documentation and examples
  • Composite layouts to address UI parity issues across different platforms. A migration guide is available to help you migrate your applications.
  • Well-defined module API for module developers.
  • More flexible geolocation functionality.
  • Xcode 4.3 and iOS 5.1 support.
  • Android V8 – Better memory management
  • Android r19 toolset support

We also processed quite a few community pull requests for this release. We appreciate the effort and commitment from our wonderful community and this release would not have been possible without your support.

Read the Release Notes for additional details on all improvements available in this release.

Download and Installation

Updating Titanium Studio

You should be automatically prompted to update your Titanium Studio software. If you do not see the prompt, you can select “Check for Updates” from the “Help” menu from within Titanium Studio.

Updating the Mobile SDK

Similarly, you should be prompted to automatically upgrade your Titanium Mobile SDK from within Titanium Studio. If you do not see the prompt below, you can manually check for updates by selecting “Check for Titanium SDK Updates” from the “Help” menu within Titanium Studio.

For More Information

For more information, you may view the related API Documentation: Titanium Mobile SDK 2.0.1 API docs.

Release your Titanium app on mobile web and win!

Tuesday, April 17th, 2012

The mobile web platform is coming along fast, with a release candidate build available in Titanium 2.0. We’re looking to help developers start targeting mobile web today, so we thought we’d make it interesting. If you have a Titanium application that is available in an app store today, you are eligible to win $1,000 cash from Appcelerator in our 2.0 Mobile Web developer contest.

To enter, simply port your existing Titanium application (or create a new one for mobile web and at least one native platform), and e-mail both the app store link (or links) to the native app, along with a URL to the mobile web version, to community@appcelerator.com with the subject line “CONTEST” by June 1st, 2012.

Five native and mobile web applications will be chosen (at random) to receive $1,000 as a thank you for being among our first mobile web adopters. There may even be a little something special for our favorite apps. Good luck!