Save 37% off PRO during our Black Friday Sale! »

Programování pro iOS z pohledu pythonistu

5f27d0b43fc28785db65c57ae7e81ec5?s=47 Milan Cermak
May 01, 2012
200

Programování pro iOS z pohledu pythonistu

Slides from the talk I gave at the python user group meetup in April 2012, Prague, Czech Republic. It's a fast introduction to the world of iOS programming from the perspective of a python developer.

5f27d0b43fc28785db65c57ae7e81ec5?s=128

Milan Cermak

May 01, 2012
Tweet

Transcript

  1. Programování pro iOS z pohledu pythonistu Milan Čermák http://milancermak.com Tuesday,

    May 1, 2012
  2. Jak začít? Tuesday, May 1, 2012

  3. Jak začít? • MacBook + iDevice Tuesday, May 1, 2012

  4. Jak začít? • MacBook + iDevice • Apple Developer Account

    (€79) Tuesday, May 1, 2012
  5. Jak začít? • MacBook + iDevice • Apple Developer Account

    (€79) • Objective-C + SDK Tuesday, May 1, 2012
  6. Objective-C Tuesday, May 1, 2012

  7. Objective-C • nadstavba ANSI C: Tuesday, May 1, 2012

  8. Objective-C • nadstavba ANSI C: • objects, protocols, categories, properties

    Tuesday, May 1, 2012
  9. Objective-C • nadstavba ANSI C: • objects, protocols, categories, properties

    • mnoho jiných příjemných vylepšení (@property, ARC, literals, ...) Tuesday, May 1, 2012
  10. NSObject *object = [[NSObject alloc] init]; Tuesday, May 1, 2012

  11. NSObject *object = [[NSObject alloc] init]; ^ název objektu Tuesday,

    May 1, 2012
  12. NSObject *object = [[NSObject alloc] init]; ^ metoda (správa) Tuesday,

    May 1, 2012
  13. - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; Tuesday, May 1, 2012

  14. - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; ^ název funkce Tuesday, May

    1, 2012
  15. - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; ^ typ parametru Tuesday, May

    1, 2012
  16. - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; ^ název parametru Tuesday, May

    1, 2012
  17. - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; ^ návratová hodnota Tuesday, May

    1, 2012
  18. - (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys; ^ typ funkce Tuesday, May

    1, 2012
  19. MCMainView.h #import <UIKit/UIKit.h> @interface MCMainViewController : UIViewController { UILabel *nameLabel;

    UIButton *submitButton; } - (void)submitName; @end Tuesday, May 1, 2012
  20. MCMainView.m #import ”MCMainView.h” @implementation MCMainViewController { - (void)viewDidLoad { ...

    } ... } @end Tuesday, May 1, 2012
  21. PEP8? Tuesday, May 1, 2012

  22. PEP8 Tuesday, May 1, 2012

  23. kopírování stylu Applu Tuesday, May 1, 2012

  24. Tuesday, May 1, 2012

  25. • vendor prefixes (NSArray, LHTableView) Tuesday, May 1, 2012

  26. • vendor prefixes (NSArray, LHTableView) • dlouhé názvy metod i

    protokolů Tuesday, May 1, 2012
  27. • vendor prefixes (NSArray, LHTableView) • dlouhé názvy metod i

    protokolů • slovesá v názvech metod Tuesday, May 1, 2012
  28. • vendor prefixes (NSArray, LHTableView) • dlouhé názvy metod i

    protokolů • slovesá v názvech metod • typy parametrů v názvech metod Tuesday, May 1, 2012
  29. • vendor prefixes (NSArray, LHTableView) • dlouhé názvy metod i

    protokolů • slovesá v názvech metod • typy parametrů v názvech metod • návratové hodnoty v názvech metod Tuesday, May 1, 2012
  30. • vendor prefixes (NSArray, LHTableView) • dlouhé názvy metod i

    protokolů • slovesá v názvech metod • typy parametrů v názvech metod • návratové hodnoty v názvech metod • řazení dle abecedy (alespoň v dokumentaci) Tuesday, May 1, 2012
  31. UITableView insertRowAtIndexPaths:withRowAnimation: UITableViewDelegate tableView:accessoryButtonTappedForRowWithIndexPath: Tuesday, May 1, 2012

  32. stdlib? Tuesday, May 1, 2012

  33. iOS SDK ftw! Tuesday, May 1, 2012

  34. Tuesday, May 1, 2012

  35. • networking Tuesday, May 1, 2012

  36. • networking • CoreData, CoreAudio, CoreLocation, ... Tuesday, May 1,

    2012
  37. • networking • CoreData, CoreAudio, CoreLocation, ... • OpenGL Tuesday,

    May 1, 2012
  38. • networking • CoreData, CoreAudio, CoreLocation, ... • OpenGL •

    senzory Tuesday, May 1, 2012
  39. • networking • CoreData, CoreAudio, CoreLocation, ... • OpenGL •

    senzory • Cocoa Touch Tuesday, May 1, 2012
  40. Vývojové nástroje Tuesday, May 1, 2012

  41. XCode Tuesday, May 1, 2012

  42. Tuesday, May 1, 2012

  43. XCode ale musíme používat Tuesday, May 1, 2012

  44. iPhone a iPad simulátor Tuesday, May 1, 2012

  45. Tuesday, May 1, 2012

  46. Debugging Tuesday, May 1, 2012

  47. Debugging • TypeError, NameError Tuesday, May 1, 2012

  48. Debugging • TypeError, NameError • žádný REPL Tuesday, May 1,

    2012
  49. Debugging • TypeError, NameError • žádný REPL • gdb, XCode

    Tuesday, May 1, 2012
  50. Debugging • TypeError, NameError • žádný REPL • gdb, XCode

    • dlouhý fix-run-check loop Tuesday, May 1, 2012
  51. provisioning profiles, code signing certificates Tuesday, May 1, 2012

  52. Tuesday, May 1, 2012

  53. Problémy s certifikáty Tuesday, May 1, 2012

  54. Problémy s certifikáty • “divné” chyby při kompilování Tuesday, May

    1, 2012
  55. Problémy s certifikáty • “divné” chyby při kompilování • přidávání

    testerů Tuesday, May 1, 2012
  56. Problémy s certifikáty • “divné” chyby při kompilování • přidávání

    testerů • expirace a následné konflikty Tuesday, May 1, 2012
  57. Problémy s certifikáty • “divné” chyby při kompilování • přidávání

    testerů • expirace a následné konflikty • distribuce Tuesday, May 1, 2012
  58. Distribuce Tuesday, May 1, 2012

  59. Distribuce • testerům přes TestFlight Tuesday, May 1, 2012

  60. Distribuce • testerům přes TestFlight • uživatelům přes AppStore Tuesday,

    May 1, 2012
  61. Dobré věci Tuesday, May 1, 2012

  62. Dobré věci • oficiální dokumentace Tuesday, May 1, 2012

  63. Dobré věci • oficiální dokumentace • neoficiální dokumentace Tuesday, May

    1, 2012
  64. Dobré věci • oficiální dokumentace • neoficiální dokumentace • komunita

    Tuesday, May 1, 2012
  65. Dobré věci • oficiální dokumentace • neoficiální dokumentace • komunita

    • externí knihovny Tuesday, May 1, 2012
  66. shameless plug mDevCamp 26. 5. na FF UK http://mdevcamp.cz Tuesday,

    May 1, 2012
  67. Děkuju. Otázky? Tuesday, May 1, 2012