Cross-Platform Mobile Development                                        with Eclipse         @peterfriese / @itemismobile
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{% ...
App Anatomy 101
Views
Views   Cells
Views Cells   Navigation
Views Cells Navigation
ViewsCellsNavigation
EntitiesViews                 SessionCells        title             roomNavigation
Views                 SessionCells        title             roomNavigationEntities
Views                 SessionCells        title             roomNavigationEntities
Views                 SessionCells        title             roomNavigationEntities                   ContentProviders
Views                 SessionCells        title             roomNavigationEntities                   ContentProviders
Views                       SessionCells              title                   roomNavigationEntitiesContentProviders
Demo :)
@hbehrens and @peterfriese working with @itemismobile
APPlause - DemoCamp Munich
APPlause - DemoCamp Munich
APPlause - DemoCamp Munich
Upcoming SlideShare
Loading in …5
×

APPlause - DemoCamp Munich

2,309 views
2,239 views

Published on

Build native cross-platform apps using APPlause, a DSL for mobile developement.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,309
On SlideShare
0
From Embeds
0
Number of Embeds
574
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

APPlause - DemoCamp Munich

  1. 1. Cross-Platform Mobile Development with Eclipse @peterfriese / @itemismobile
  2. 2. countless devices
  3. 3. diversity of platforms
  4. 4. 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(); }
  5. 5. 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]; } }}
  6. 6. 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];}
  7. 7. 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 %}
  8. 8. App Anatomy 101
  9. 9. Views
  10. 10. Views Cells
  11. 11. Views Cells Navigation
  12. 12. Views Cells Navigation
  13. 13. ViewsCellsNavigation
  14. 14. EntitiesViews SessionCells title roomNavigation
  15. 15. Views SessionCells title roomNavigationEntities
  16. 16. Views SessionCells title roomNavigationEntities
  17. 17. Views SessionCells title roomNavigationEntities ContentProviders
  18. 18. Views SessionCells title roomNavigationEntities ContentProviders
  19. 19. Views SessionCells title roomNavigationEntitiesContentProviders
  20. 20. Demo :)
  21. 21. @hbehrens and @peterfriese working with @itemismobile

×