SlideShare a Scribd company logo
1 of 27
Download to read offline
Three20 framework for iOS development

      Chih-Wei Lee
Google Summer of Code Student 2010

Email: dlackty@gmail.com
Twitter/Facebook/GitHub: @dlackty
Google Summer of Code 2010
Why you should know more about mobile apps?
Lots of new startups build their own mobile app first!
Web giants also build wonderful mobile apps.
Mobile first, web second.



   1. Mobile is exploding

   2. Mobile forces you to focus

   3. Mobile extends your capabilities




                                      Luke Wroblewski
                           Source : http://www.lukew.com/ff/entry.asp?933
Connected to Internet

90% apps has data transmission to server
•Push notifications
•Member system
•Data display/browse
•Online ranking
•Search
Cocoa touch aren’t optimized as a web client

•No simple mechanism to manipulate online objects
•Need to make lots of caches of online resource
•Some UI components are missing
•Navigation between view controllers are trivial

•There’re event no built-in JSON parsers!
Three20
Three20

•Originally developed by Joe Hewitt at Facebook
•Used to build official Facebook app
•Similar to many web frameworks

•Now an most popular Objective-C project on GitHub
More on http://three20.info/
Three20 modules
Three20 Core

Three20 Core provides a basic set of tools useful for
debugging your applications, dealing with standard data
structures, and doing basic text manipulation.
Examples:

•TT_RELEASE_SAFELY(POINTER);
•NSString* TTPathForDocumentsResource(NSString* relativePath);
•(NSDictionary*)queryDictionaryUsingEncoding:(NSStringEncoding)
encoding;

•NSArray - (void)perform:(SEL)selector;
•NSData - (NSString*)md5Hash;
Three20 Network

Three20 Network mainly provide TTURLRequest,
compared to NSURLRequest, it provides more features.
Features

•HTTP methods support (POST/GET/PUT)
•Simple post parameters
•File-based cache
•Automatically parse downloaded data an validate
•Handle cookies
Three20 UICommon

Three20 UICommon provides basic UI utilities for
construction of higher level UI modules.
Examples:

•float TTOSVersion();
•BOOL TTIsPad();
•BOOL TTIsKeyboardVisible();
•void TTAlert(NSString* message);
•- (UIView*)findFirstResponderInView:(UIView*)topView;
Three20 UINavigator

Three20 UINavigator makes iPhone apps like web apps
based on URL-mapping mechanism.
The URLs are mapped into Objective-C view controllers,
and the parameters are passed to init method.
Features:

•TTBaseNavigator - The main url handler to open urls
•TTURLAction - Action to open url with some option parameters
•TTURLMap - Map URLS to view controllers
URL-Mapping examples
    TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"tt://catalog" toViewController:[CatalogController class]];
[map from:@"tt://photoTest1" toViewController:[PhotoTest1Controller class]];
[map from:@"tt://photoTest2" toViewController:[PhotoTest2Controller class]];
[map from:@"tt://imageTest1" toViewController:[ImageTest1Controller class]];
[map from:@"tt://tableTest" toViewController:[TableTestController class]];



then, you can simply:
TTOpenURL(@"tt://launcherTest");



Instead of
LauncherViewTestController *viewController = [[LauncherViewTestController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
Three20 Style

Three20 Style make developers to style UIs with a main
stylesheets, instead of manually set each UIs style.
Also it provides some utilities to cope with UIs and do
images manipulations.
Examples:

•- (UIImage*)transformWidth:(CGFloat)width height:(CGFloat)height rotate:
(BOOL)rotate;

•- (void)drawInRect:(CGRect)rect radius:(CGFloat)radius;
Three20 UI

Three20 UI is the most wonderful part of the framework,
includes enhancements of UIKit, new view controllers and
new UI components
TTImageView examples

  TTImageView *imageView = [[TTImageView alloc] initWithFrame:frame];
  [imageView setUrlPath:@"http://www.foo.com/bar.jpg"];




Instead of
  UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
  NSURL *url = [NSURL URLWithString:@"http://www.foo.com/bar.jpg"];
  NSData *data = [[NSData alloc] initWithContentsOfURL:url];
  [imageView setImage:[UIImage imageWithData:data]];




and with additional
asynchronous loading, and disk cache
TTPhotoViewController
TTMessageController
TTLauncherView
Three20 extensions
Three20 Extensions

extCSSStyle
This extension provides support for reading Three20 style sheets from CSS files.

extXML
Three20 XML Extension for parsing XML objects into Objective-C NSObjects.

extJSON
Three20 JSON Extension for parsing JSON objects in to Objective-C
NSObjects.
New official website with docs and tutorials
                                 Check out http://three20.info/
Reference

Official website http://three20.info
GitHub http://github.com/facebook/three20
Google Group http://groups.google.com/group/three20/

More Related Content

Similar to Three20 Framework for iOS Development

The current status of html5 technology and standard
The current status of html5 technology and standardThe current status of html5 technology and standard
The current status of html5 technology and standardWonsuk Lee
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your FrontendRuben Teijeiro
 
Manageable Robust Automated Ui Test
Manageable Robust Automated Ui TestManageable Robust Automated Ui Test
Manageable Robust Automated Ui TestJohn.Jian.Fang
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkitPaul Jensen
 
The fundamental problems of GUI applications and why people choose React
The fundamental problems of GUI applications and why people choose ReactThe fundamental problems of GUI applications and why people choose React
The fundamental problems of GUI applications and why people choose ReactOliver N
 
Faites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchFaites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchMongoDB
 
AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?
AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?
AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?Andrew Barickman
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB
 
Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010joycsc
 
Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Andrii Lundiak
 
Building Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 FrameworkBuilding Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 FrameworkWebvanta
 
Siligong.Data - May 2021 - Transforming your analytics workflow with dbt
Siligong.Data - May 2021 - Transforming your analytics workflow with dbtSiligong.Data - May 2021 - Transforming your analytics workflow with dbt
Siligong.Data - May 2021 - Transforming your analytics workflow with dbtJon Su
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Takumi Sakamoto
 
Architecting modern Android apps
Architecting modern Android appsArchitecting modern Android apps
Architecting modern Android appsGrigori Hlopkov
 

Similar to Three20 Framework for iOS Development (20)

The current status of html5 technology and standard
The current status of html5 technology and standardThe current status of html5 technology and standard
The current status of html5 technology and standard
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
AngularJS Basics
AngularJS BasicsAngularJS Basics
AngularJS Basics
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your Frontend
 
Manageable Robust Automated Ui Test
Manageable Robust Automated Ui TestManageable Robust Automated Ui Test
Manageable Robust Automated Ui Test
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
The fundamental problems of GUI applications and why people choose React
The fundamental problems of GUI applications and why people choose ReactThe fundamental problems of GUI applications and why people choose React
The fundamental problems of GUI applications and why people choose React
 
Faites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchFaites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB Stitch
 
AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?
AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?
AD105 - OneUI.. really? Is that because you don't know about Twitter Bootstrap?
 
Apps & Widgets in Mobile Learning
Apps & Widgets in Mobile LearningApps & Widgets in Mobile Learning
Apps & Widgets in Mobile Learning
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
 
04 objective-c session 4
04  objective-c session 404  objective-c session 4
04 objective-c session 4
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
 
Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010
 
Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]
 
Meteor meetup
Meteor meetupMeteor meetup
Meteor meetup
 
Building Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 FrameworkBuilding Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 Framework
 
Siligong.Data - May 2021 - Transforming your analytics workflow with dbt
Siligong.Data - May 2021 - Transforming your analytics workflow with dbtSiligong.Data - May 2021 - Transforming your analytics workflow with dbt
Siligong.Data - May 2021 - Transforming your analytics workflow with dbt
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?
 
Architecting modern Android apps
Architecting modern Android appsArchitecting modern Android apps
Architecting modern Android apps
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 

Three20 Framework for iOS Development

  • 1. Three20 framework for iOS development Chih-Wei Lee Google Summer of Code Student 2010 Email: dlackty@gmail.com Twitter/Facebook/GitHub: @dlackty
  • 2. Google Summer of Code 2010
  • 3. Why you should know more about mobile apps?
  • 4. Lots of new startups build their own mobile app first!
  • 5. Web giants also build wonderful mobile apps.
  • 6. Mobile first, web second. 1. Mobile is exploding 2. Mobile forces you to focus 3. Mobile extends your capabilities Luke Wroblewski Source : http://www.lukew.com/ff/entry.asp?933
  • 7. Connected to Internet 90% apps has data transmission to server •Push notifications •Member system •Data display/browse •Online ranking •Search
  • 8. Cocoa touch aren’t optimized as a web client •No simple mechanism to manipulate online objects •Need to make lots of caches of online resource •Some UI components are missing •Navigation between view controllers are trivial •There’re event no built-in JSON parsers!
  • 10. Three20 •Originally developed by Joe Hewitt at Facebook •Used to build official Facebook app •Similar to many web frameworks •Now an most popular Objective-C project on GitHub
  • 13. Three20 Core Three20 Core provides a basic set of tools useful for debugging your applications, dealing with standard data structures, and doing basic text manipulation. Examples: •TT_RELEASE_SAFELY(POINTER); •NSString* TTPathForDocumentsResource(NSString* relativePath); •(NSDictionary*)queryDictionaryUsingEncoding:(NSStringEncoding) encoding; •NSArray - (void)perform:(SEL)selector; •NSData - (NSString*)md5Hash;
  • 14. Three20 Network Three20 Network mainly provide TTURLRequest, compared to NSURLRequest, it provides more features. Features •HTTP methods support (POST/GET/PUT) •Simple post parameters •File-based cache •Automatically parse downloaded data an validate •Handle cookies
  • 15. Three20 UICommon Three20 UICommon provides basic UI utilities for construction of higher level UI modules. Examples: •float TTOSVersion(); •BOOL TTIsPad(); •BOOL TTIsKeyboardVisible(); •void TTAlert(NSString* message); •- (UIView*)findFirstResponderInView:(UIView*)topView;
  • 16. Three20 UINavigator Three20 UINavigator makes iPhone apps like web apps based on URL-mapping mechanism. The URLs are mapped into Objective-C view controllers, and the parameters are passed to init method. Features: •TTBaseNavigator - The main url handler to open urls •TTURLAction - Action to open url with some option parameters •TTURLMap - Map URLS to view controllers
  • 17. URL-Mapping examples TTURLMap* map = navigator.URLMap; [map from:@"*" toViewController:[TTWebController class]]; [map from:@"tt://catalog" toViewController:[CatalogController class]]; [map from:@"tt://photoTest1" toViewController:[PhotoTest1Controller class]]; [map from:@"tt://photoTest2" toViewController:[PhotoTest2Controller class]]; [map from:@"tt://imageTest1" toViewController:[ImageTest1Controller class]]; [map from:@"tt://tableTest" toViewController:[TableTestController class]]; then, you can simply: TTOpenURL(@"tt://launcherTest"); Instead of LauncherViewTestController *viewController = [[LauncherViewTestController alloc] init]; [self.navigationController pushViewController:viewController animated:YES]; [viewController release];
  • 18. Three20 Style Three20 Style make developers to style UIs with a main stylesheets, instead of manually set each UIs style. Also it provides some utilities to cope with UIs and do images manipulations. Examples: •- (UIImage*)transformWidth:(CGFloat)width height:(CGFloat)height rotate: (BOOL)rotate; •- (void)drawInRect:(CGRect)rect radius:(CGFloat)radius;
  • 19. Three20 UI Three20 UI is the most wonderful part of the framework, includes enhancements of UIKit, new view controllers and new UI components
  • 20. TTImageView examples TTImageView *imageView = [[TTImageView alloc] initWithFrame:frame]; [imageView setUrlPath:@"http://www.foo.com/bar.jpg"]; Instead of UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame]; NSURL *url = [NSURL URLWithString:@"http://www.foo.com/bar.jpg"]; NSData *data = [[NSData alloc] initWithContentsOfURL:url]; [imageView setImage:[UIImage imageWithData:data]]; and with additional asynchronous loading, and disk cache
  • 25. Three20 Extensions extCSSStyle This extension provides support for reading Three20 style sheets from CSS files. extXML Three20 XML Extension for parsing XML objects into Objective-C NSObjects. extJSON Three20 JSON Extension for parsing JSON objects in to Objective-C NSObjects.
  • 26. New official website with docs and tutorials Check out http://three20.info/
  • 27. Reference Official website http://three20.info GitHub http://github.com/facebook/three20 Google Group http://groups.google.com/group/three20/