Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pixels Everywhere!

Pixels Everywhere!

Abc432bb0450574a25b15ff23d399d5a?s=128

Vladimir Pouzanov

June 01, 2013
Tweet

Transcript

  1. Pixels Everywhere Vladimir Pouzanov <farcaller@gmail.com>

  2. None
  3. Эволюция iOS

  4. Ожидания пользователей

  5. Красивые приложения

  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. None
  14. None
  15. None
  16. Красиво

  17. Удобно

  18. Ожидания разработчиков

  19. Быстро

  20. None
  21. Современно

  22. iOS 3? O RLY?

  23. iPhone 5?

  24. Legacy

  25. if  (NSClassFromString(@”...”)){      Лапша }  else  {    

     Еще  больше  лапши }
  26. Странные политики

  27. None
  28. ARC

  29. ARC

  30. None
  31. None
  32. Быстро

  33. Эффективно

  34. Код в ruby-стиле* * Код на ruby, в общем-то

  35. Другой взгляд на iOS?

  36. class  HomeScreen  <  ProMotion::Screen    title  "Home"    def  on_load

           #  Load  data    end    def  will_appear        #  Set  up  the  elements  in  your  view  with  add        @label  ||=  add  UILabel.alloc.initWithFrame([                5,  5,  20,  20        ])    end    def  on_appear        #  Everything's  loaded  and  visible    end end
  37. class  HomeScreen  <  ProMotion::Screen    title  "Home"    def  on_load

           #  Load  data    end    def  will_appear        #  Set  up  the  elements  in  your  view  with  add        @label  ||=  add  UILabel.alloc.initWithFrame([                5,  5,  20,  20        ])    end    def  on_appear        #  Everything's  loaded  and  visible    end end
  38. class  HomeScreen  <  ProMotion::Screen    title  "Home"    def  on_load

           #  Load  data    end    def  will_appear        #  Set  up  the  elements  in  your  view  with  add        @label  ||=  add  UILabel.alloc.initWithFrame([                5,  5,  20,  20        ])    end    def  on_appear        #  Everything's  loaded  and  visible    end end
  39. def  on_load(app,  options)    @home          =

     MyHomeScreen.new(nav_bar:  true)    @settings  =  SettingsScreen.new    @contact    =  ContactScreen.new(nav_bar:  true)    open_tab_bar  @home,  @settings,  @contact end
  40. def  on_load(app,  options)    @home          =

     MyHomeScreen.new(nav_bar:  true)    @settings  =  SettingsScreen.new    @contact    =  ContactScreen.new(nav_bar:  true)    open_tab_bar  @home,  @settings,  @contact end
  41. def  on_load(app,  options)    @home          =

     MyHomeScreen.new(nav_bar:  true)    @settings  =  SettingsScreen.new    @contact    =  ContactScreen.new(nav_bar:  true)    open_tab_bar  @home,  @settings,  @contact end
  42. def  on_load    set_tab_bar_item  title:  "Hello",  icon:  "star.png" end

  43. def  on_load    set_tab_bar_item  title:  "Hello",  icon:  "star.png" end

  44. Цените своё время!

  45. None
  46. {    title:  "Email",    key:  :email,    placeholder:  “me@mail.com",

       type:  :email,    auto_correction:  :no,    auto_capitalization:  :none }
  47. @form.render =>  {    email:  "me@mail.com",    password:  "password",  

     confirm:  "password",    remember:  true,    account_type:  :pro }
  48. Data persistence

  49. Красивая упаковка!

  50. '#FF8A19'.to_color =>  #<UIDeviceRGBColor:0x8d54110>

  51. Device.iphone? =>  true

  52. Device.iphone? =>  true Device.camera.front? =>  true

  53. Device.iphone? =>  true Device.camera.front? =>  true Device.retina? =>  false

  54. observe(@label,  :text)  do  |old,  new|    puts  "#{@label}  new  text:

     #{new}" end
  55. Time.iso8601("2012-­‐05-­‐31T19:41:33Z") =>  2012-­‐05-­‐31  21:41:33  +0200

  56. BW::HTTP.get("http://...")  do  |resp|    p  resp.body.to_str end

  57. None
  58. Зачем это всё?

  59. Зачем я пишу код?

  60. Выживание

  61. Удовольствие

  62. Рутинные задачи Выживание Удовольствие

  63. Крутые ништяки Выживание Удовольствие

  64. CSS

  65. Ваш веб-дизайнер может заняться iOS

  66. Или наоборот?

  67. None
  68. #button1,  #button2,  #button3  {    border-­‐radius      :  5px;

       font-­‐family          :  "Helvetica";    font-­‐size              :  13px;    font-­‐weight          :  bold;    color                      :  #ffffff;    background-­‐color:  linear-­‐gradient(#3c4145,  #585e62);    border-­‐width        :  1px;    border-­‐color        :  #212325;    box-­‐shadow            :  inset  0  1px  0  rgba(255,255,255,0.3),                                                    0  1px  1px  rgba(0,0,0,0.5); } #button2  {    box-­‐shadow            :  inset  0  2px  5px  rgba(0,0,0,0.6),                                                    0  1px  0  rgba(255,255,255,0.1); }
  69. None
  70. None
  71. Внешний вид

  72. Позиционирование

  73. Ещё причины?

  74. None
  75. Вокруг столько интересного!

  76. Вопросы?

  77. Спасибо! http://vfp.in/pixels farcaller@gmail.com