0
Cross-Platform Mobile Development                                           with EclipseEclipseCon 2011 March 21st - 24th ...
@moskovich: “Your mobile phone has morecomputing power than all of NASA in 1969.    NASA put a man on the moon...
...we put a bird into pigs.”
countless devices
diversity of platforms
Javapublic class SpeakersList extends GenericListActivity<Speaker> {	   List<Speaker> speakers;	   @Override	   public voi...
C#public partial class SpeakerDetailsDetailsView : PhoneApplicationPage{    public SpeakerDetailsDetailsView()    {       ...
Objective-C@implementation SpeakersListViewController- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection...
HTML{% extends "generated/application.html" %}{% block title%}Speakers{% endblock %}{% block content_class %}table list{% ...
object-orientation
–principle
stateless
App Anatomy 101
Views
Views   Cells
Views Cells   Navigation
EntitiesViews                 SessionCells        title             roomNavigation
Views                 SessionCells        title             roomNavigationEntities                   ContentProviders
DSL for mobiletabbarApplication itemisApp {	   button {	   	   title= "Tuesday"	   	   icon= "calendar.png"	   	   view= S...
«Xpand»
Demo :)
@hbehrens and @peterfriese working with @itemismobile
Upcoming SlideShare
Loading in...5
×

EclipseCon2011 Cross-Platform Mobile Development with Eclipse

3,793

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,793
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
68
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "EclipseCon2011 Cross-Platform Mobile Development with Eclipse"

  1. 1. Cross-Platform Mobile Development with EclipseEclipseCon 2011 March 21st - 24th Santa Clara, California@hbehrens and @peterfriese working with @itemismobile
  2. 2. @moskovich: “Your mobile phone has morecomputing power than all of NASA in 1969. NASA put a man on the moon...
  3. 3. ...we put a bird into pigs.”
  4. 4. countless devices
  5. 5. diversity of platforms
  6. 6. Javapublic class SpeakersList extends GenericListActivity<Speaker> { List<Speaker> speakers; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("Speakers"); speakers = getItemsFromProvider(); ArrayList<AbstractRowAdapter> rowAdapters = new ArrayList<AbstractRowAdapter>(); Iterable<Speaker> items1 = speakers; for (Speaker i : items1) rowAdapters.add(new Cell1(i)); setListAdapter(new GenericItemAdapter(this, rowAdapters)); finishCreation(); }
  7. 7. C#public partial class SpeakerDetailsDetailsView : PhoneApplicationPage{ public SpeakerDetailsDetailsView() { InitializeComponent(); } protected override void OnNavigatedTo(NavigationEventArgs e) { string selectedIndex = ""; if (NavigationContext.QueryString.TryGetValue("itemByIndex", out selectedIndex)) { int index = int.Parse(selectedIndex); DataContext = App.RootViewModelProvider.BlogpostsModelProvider().BlogItems[index]; } }}
  8. 8. Objective-C@implementation SpeakersListViewController- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if(section == 0) { return [[[contentProvider valueForKeyPath:@"content"] asArray] count]; } else return 0;}- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { id item = [self.items objectAtIndex: indexPath.row]; IPContentProvider *provider = [(itemisAppProviders*)contentProvider.providers providerForSpeakerByName: [item valueForKeyPath:@"name"]]; SpeakerDetailsViewController *controller = [[SpeakerDetailsViewController alloc] init]; controller.contentProvider = provider; [self.navigationController pushViewController: controller animated: TRUE]; [controller release];}
  9. 9. HTML{% extends "generated/application.html" %}{% block title%}Speakers{% endblock %}{% block content_class %}table list{% endblock %}{% block content %}<ul>{% for s in data|to_list %} <li> {% url views.SpeakerDetailsBySpeakerByName s.name|urlencode as url %} <a href="{{ url }}"> <div class="cell_text">{{s.name|safe}}</div> </a> </li>{% endfor %}</ul>{% endblock %}
  10. 10. object-orientation
  11. 11. –principle
  12. 12. stateless
  13. 13. App Anatomy 101
  14. 14. Views
  15. 15. Views Cells
  16. 16. Views Cells Navigation
  17. 17. EntitiesViews SessionCells title roomNavigation
  18. 18. Views SessionCells title roomNavigationEntities ContentProviders
  19. 19. DSL for mobiletabbarApplication itemisApp { button { title= "Tuesday" icon= "calendar.png" view= SessionList( SessionsByDay("2011-03-22") ) } button { title= "Wednesday" icon= "calendar.png" view= SessionList( SessionsByDay("2011-03-23") ) } button { title= "Thursday" icon= "calendar.png" view= SessionList( SessionsByDay("2011-03-24") ) } button { title= "Speakers" icon= "person.png" view= SpeakersList( AllSpeakers() ) }}
  20. 20. «Xpand»
  21. 21. Demo :)
  22. 22. @hbehrens and @peterfriese working with @itemismobile
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×