SlideShare a Scribd company logo
1 of 23
squeek school

Разработка приложений для iOS
team@squeek.ru
MVC?
MVC
                               Parts of a Screenful




                       Model                          View




                                     Controller




Friday, January 22, 2010                                     12
MVCParts adress book
           в of a Screenful

                       Model                View




                               Controller




Friday, January 22, 2010                           11
view
• прямоугольная часть экрана
• показывает и принимает события
• view существуют в иерархии: один
  superview, много subview
• все view показаны в window
• UIWindow - одно на всё приложение
иерархия view
Либо в IB, либо программно:
          •   [superView addSubview:view];

          •   [subView removeFromSuperview];

Управление иерархией:
-   (void)insertSubview:(UIView *)view atIndex:(int)index;
-   (void)insertSubview:(UIView *)view belowSubview:(UIView *)view;
-   (void)insertSubview:(UIView *)view aboveSubview:(UIView *)view;
-   (void)exchangeSubviewAtIndex:(int)index withSubviewAtIndex:(int)otherIndex;
view

SuperView производит retain
Контроль показа view
      theView.hidden = YES;
структуры для view
• CGPoint точка в пространстве { x , y }
• CGSize размеры { width , height }
• CGRect точка и размеры { origin , size }
Rects, Points and Sizes

                     CGRect                                    (0, 0)              x

                                                                              54
             origin                            CGPoint

                                           x         80                 80
              size
                                       y             54
                                                                y



                                                                        144
                                  CGSize

                              width    144
                                                          72
                              height   72



Tuesday, January 19, 2010                                                              11
View-related Structure
работа со структурами
      Creation Function           Example

                                  CGPoint point = CGPointMake (100.0, 200.0);
      CGPointMake (x, y)          point.x = 300.0;
                                  point.y = 30.0;

                                 CGSize size = CGSizeMake (42.0, 11.0);
      CGSizeMake (width, height) size.width = 100.0;
                                 size.height = 72.0;

                                 CGRect rect = CGRectMake (100.0, 200.0,
      CGRectMake (x, y,                                    42.0, 11.0);
                  width, height) rect.origin.x = 0.0;
                                 rect.size.width = 50.0;



                               синтаксис!
Tuesday, January 19, 2010       (), нет *                                       12


                            наследство от С
ordinate System
left corner
wnwards
              система координат
                0,!0
                             +x




                 +y
view
       frame                  bounds

координатная система          локальная
     superview           координатная система


  используется при        используется при
 использовании view       реализации view
создаём view
CGRect frame = CGRectMake(20, 45, 140, 21);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
[window addSubview:label];
[label setText:@”Привет всем!”];
[label release];
дополнительные бонусы
UIColor
UIColor *redColor = [UIColor redColor];
[myLabel setTextColor:redColor];




UIFont
UIFont *font = [UIFont systemFontOfSize:14.0];
[myLabel setFont:font];
UIImage и UIImageView
    Создание UIImage:
   из ресурсов:
   +[UIImage imageNamed:(NSString *)name]

   с диска
   -[UIImage initWithContentsOfFile:(NSString *)path]

   из памяти в виде данных
    -[UIImage initWithData:(NSData *)data]


UIImage *myImage = [UIImage imageNamed:@’‘oleg.jpg’’];
CGRect frame = CGRectMake(20, 45, 140, 21);
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:frame];
myImageView.image = myImage;
[self.view addSubview:myImageView];
[myImageView release];
пример UIImage
простая анимация
-(IBAction)changeValue {

 [UIView beginAnimations:@"advancedAnimations" context:nil];

 [UIView setAnimationDuration:0.5];


 int value = slider.value;

 [label setText:[NSString stringWithFormat:@"%d",value]];


 CGRect fr = label.frame;

 fr.origin.y += 40;

 label.frame = fr;

 [UIView commitAnimations];
}
пример анимации
дизайн приложений в
    Two Flavors of Mail
       iPhone
сравни
        Organizing Content             Organizing Content




Friday, January 22, 2010       Friday, January 22, 2010   6
дизайн
                            Organizing Content
• фокус на                                     • Focus on yo
  информацию                                   • One thing a
                                               • Screenfuls o
  пользователя
• один функционал
  единовременно
• правило
  большого пальца

                    Friday, January 22, 2010

More Related Content

Viewers also liked

Medidas tendencia central_clase iv
Medidas tendencia central_clase ivMedidas tendencia central_clase iv
Medidas tendencia central_clase ivProfe Lucy Pereira
 
Act 3 sistemas jose ospina
Act 3 sistemas jose ospinaAct 3 sistemas jose ospina
Act 3 sistemas jose ospinaAndrea Tapasco
 
A PresidêNcia De Vargas Net
A PresidêNcia De Vargas NetA PresidêNcia De Vargas Net
A PresidêNcia De Vargas Netguestc51894f
 
Despacho Nº 6 De 2010
Despacho Nº 6 De 2010Despacho Nº 6 De 2010
Despacho Nº 6 De 2010ana joaquim
 
Xilografías 2010 2011 diapositivas.
Xilografías 2010 2011 diapositivas.Xilografías 2010 2011 diapositivas.
Xilografías 2010 2011 diapositivas.Carmen Casas
 
Департамент Программной Инженерии
Департамент Программной ИнженерииДепартамент Программной Инженерии
Департамент Программной ИнженерииSergey Pronin
 
Mera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-CMera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-CSergey Pronin
 

Viewers also liked (20)

Medidas tendencia central_clase iv
Medidas tendencia central_clase ivMedidas tendencia central_clase iv
Medidas tendencia central_clase iv
 
Chudinov_PhD_IMEMO
Chudinov_PhD_IMEMOChudinov_PhD_IMEMO
Chudinov_PhD_IMEMO
 
Act 3 sistemas jose ospina
Act 3 sistemas jose ospinaAct 3 sistemas jose ospina
Act 3 sistemas jose ospina
 
Mais jogos
Mais jogosMais jogos
Mais jogos
 
A PresidêNcia De Vargas Net
A PresidêNcia De Vargas NetA PresidêNcia De Vargas Net
A PresidêNcia De Vargas Net
 
Despacho Nº 6 De 2010
Despacho Nº 6 De 2010Despacho Nº 6 De 2010
Despacho Nº 6 De 2010
 
Xilografías 2010 2011 diapositivas.
Xilografías 2010 2011 diapositivas.Xilografías 2010 2011 diapositivas.
Xilografías 2010 2011 diapositivas.
 
Swift School #1
Swift School #1Swift School #1
Swift School #1
 
PTA Ancillaries
PTA AncillariesPTA Ancillaries
PTA Ancillaries
 
Squeek School #8
Squeek School #8Squeek School #8
Squeek School #8
 
Squeek School #7
Squeek School #7Squeek School #7
Squeek School #7
 
Squeek school 4
Squeek school 4Squeek school 4
Squeek school 4
 
Squeek school #6
Squeek school #6Squeek school #6
Squeek school #6
 
Squeek School #5
Squeek School #5Squeek School #5
Squeek School #5
 
Swift School #4
Swift School #4Swift School #4
Swift School #4
 
Департамент Программной Инженерии
Департамент Программной ИнженерииДепартамент Программной Инженерии
Департамент Программной Инженерии
 
Swift School #2
Swift School #2Swift School #2
Swift School #2
 
Swift School #3
Swift School #3Swift School #3
Swift School #3
 
Mera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-CMera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-C
 
Ponencia D. Carlos Sañudo 2013
Ponencia D. Carlos Sañudo 2013Ponencia D. Carlos Sañudo 2013
Ponencia D. Carlos Sañudo 2013
 

Similar to Squeek School #3

Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutRambler Android
 
Кастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриКастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриKirill Averyanov
 
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов —  Кастомная кнопка: взгляд изнутриКирилл Аверьянов —  Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутриCocoaHeads
 
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»e-Legion
 
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)Ontico
 
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"IT Event
 
Design for Testability: Mocks, Stubs, Refactoring
Design for Testability: Mocks, Stubs, RefactoringDesign for Testability: Mocks, Stubs, Refactoring
Design for Testability: Mocks, Stubs, RefactoringLuxoftTraining
 
MS SWIT 2013 Design for Testability
MS SWIT 2013 Design for TestabilityMS SWIT 2013 Design for Testability
MS SWIT 2013 Design for TestabilitySergey Teplyakov
 
Иду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. МоскваИду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. МоскваMaxim Gaponov
 
Moxy – реализация MVP под Android. С щепоткой магии
Moxy – реализация MVP под Android. С щепоткой магииMoxy – реализация MVP под Android. С щепоткой магии
Moxy – реализация MVP под Android. С щепоткой магииYuri Shmakov
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовSergey Borisov
 
"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, Яндекс"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
 
модуль 1. основы работы в illustrator 1. введение
модуль 1. основы работы в illustrator 1. введениемодуль 1. основы работы в illustrator 1. введение
модуль 1. основы работы в illustrator 1. введениеEd Solovey
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKitNoveo
 
Эффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминЭффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминCocoaHeads
 
Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"IT Event
 
Принципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсовПринципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсовVasiliy Aksyonov
 
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...it-people
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?buranLcme
 

Similar to Squeek School #3 (20)

Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayout
 
Кастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриКастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутри
 
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов —  Кастомная кнопка: взгляд изнутриКирилл Аверьянов —  Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
 
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
Дмитрий Захаров «Компоновка элементов пользовательского интерфейса»
 
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
 
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"
Александр Зимин "Нестандартная верстка для стандартных компонентов в iOS"
 
Design for Testability: Mocks, Stubs, Refactoring
Design for Testability: Mocks, Stubs, RefactoringDesign for Testability: Mocks, Stubs, Refactoring
Design for Testability: Mocks, Stubs, Refactoring
 
MS SWIT 2013 Design for Testability
MS SWIT 2013 Design for TestabilityMS SWIT 2013 Design for Testability
MS SWIT 2013 Design for Testability
 
Иду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. МоскваИду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. Москва
 
Moxy – реализация MVP под Android. С щепоткой магии
Moxy – реализация MVP под Android. С щепоткой магииMoxy – реализация MVP под Android. С щепоткой магии
Moxy – реализация MVP под Android. С щепоткой магии
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотов
 
"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, Яндекс"Рекомендации по проектированию API". Марина Степанова, Яндекс
"Рекомендации по проектированию API". Марина Степанова, Яндекс
 
модуль 1. основы работы в illustrator 1. введение
модуль 1. основы работы в illustrator 1. введениемодуль 1. основы работы в illustrator 1. введение
модуль 1. основы работы в illustrator 1. введение
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
 
Эффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминЭффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр Зимин
 
Gaperton - Software People 2012
Gaperton - Software People 2012Gaperton - Software People 2012
Gaperton - Software People 2012
 
Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"
 
Принципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсовПринципы разработки гибких и поддерживаемых интерфейсов
Принципы разработки гибких и поддерживаемых интерфейсов
 
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов ...
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
 

Squeek School #3

  • 4. MVC Parts of a Screenful Model View Controller Friday, January 22, 2010 12
  • 5. MVCParts adress book в of a Screenful Model View Controller Friday, January 22, 2010 11
  • 6.
  • 7. view • прямоугольная часть экрана • показывает и принимает события • view существуют в иерархии: один superview, много subview • все view показаны в window • UIWindow - одно на всё приложение
  • 8. иерархия view Либо в IB, либо программно: • [superView addSubview:view]; • [subView removeFromSuperview]; Управление иерархией: - (void)insertSubview:(UIView *)view atIndex:(int)index; - (void)insertSubview:(UIView *)view belowSubview:(UIView *)view; - (void)insertSubview:(UIView *)view aboveSubview:(UIView *)view; - (void)exchangeSubviewAtIndex:(int)index withSubviewAtIndex:(int)otherIndex;
  • 9. view SuperView производит retain Контроль показа view theView.hidden = YES;
  • 10. структуры для view • CGPoint точка в пространстве { x , y } • CGSize размеры { width , height } • CGRect точка и размеры { origin , size }
  • 11. Rects, Points and Sizes CGRect (0, 0) x 54 origin CGPoint x 80 80 size y 54 y 144 CGSize width 144 72 height 72 Tuesday, January 19, 2010 11
  • 12. View-related Structure работа со структурами Creation Function Example CGPoint point = CGPointMake (100.0, 200.0); CGPointMake (x, y) point.x = 300.0; point.y = 30.0; CGSize size = CGSizeMake (42.0, 11.0); CGSizeMake (width, height) size.width = 100.0; size.height = 72.0; CGRect rect = CGRectMake (100.0, 200.0, CGRectMake (x, y, 42.0, 11.0); width, height) rect.origin.x = 0.0; rect.size.width = 50.0; синтаксис! Tuesday, January 19, 2010 (), нет * 12 наследство от С
  • 13. ordinate System left corner wnwards система координат 0,!0 +x +y
  • 14. view frame bounds координатная система локальная superview координатная система используется при используется при использовании view реализации view
  • 15. создаём view CGRect frame = CGRectMake(20, 45, 140, 21); UILabel *label = [[UILabel alloc] initWithFrame:frame]; [window addSubview:label]; [label setText:@”Привет всем!”]; [label release];
  • 16. дополнительные бонусы UIColor UIColor *redColor = [UIColor redColor]; [myLabel setTextColor:redColor]; UIFont UIFont *font = [UIFont systemFontOfSize:14.0]; [myLabel setFont:font];
  • 17. UIImage и UIImageView Создание UIImage: из ресурсов: +[UIImage imageNamed:(NSString *)name] с диска -[UIImage initWithContentsOfFile:(NSString *)path] из памяти в виде данных -[UIImage initWithData:(NSData *)data] UIImage *myImage = [UIImage imageNamed:@’‘oleg.jpg’’]; CGRect frame = CGRectMake(20, 45, 140, 21); UIImageView *myImageView = [[UIImageView alloc] initWithFrame:frame]; myImageView.image = myImage; [self.view addSubview:myImageView]; [myImageView release];
  • 19. простая анимация -(IBAction)changeValue { [UIView beginAnimations:@"advancedAnimations" context:nil]; [UIView setAnimationDuration:0.5]; int value = slider.value; [label setText:[NSString stringWithFormat:@"%d",value]]; CGRect fr = label.frame; fr.origin.y += 40; label.frame = fr; [UIView commitAnimations]; }
  • 21. дизайн приложений в Two Flavors of Mail iPhone
  • 22. сравни Organizing Content Organizing Content Friday, January 22, 2010 Friday, January 22, 2010 6
  • 23. дизайн Organizing Content • фокус на • Focus on yo информацию • One thing a • Screenfuls o пользователя • один функционал единовременно • правило большого пальца Friday, January 22, 2010

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n