SlideShare a Scribd company logo
1 of 16
Download to read offline
Как сэкономить время при
разработке мобильных
приложений
Intersog	
  
Mobile	
  Monday	
  
June,	
  25th-­‐2015	
  
Introduction
Oleg Timoshenko
Team Lead, Front End
Опыт в разработке – 6 лет
Технологии:
PHP: Zend, Phalcon,
CodeIgniter, Laravel
JS: Angular, BackBone, Chaplin,
PhoneGap
Дополнительно:
Java
Andrey Radilov
Team Lead, Back End
Опыт в разработке – 10 лет
Технологии:
PHP: Zend, Phalcon,
CodeIgniter, Laravel, Yii, Kohana
JS: Angular, BackBone, Chaplin
Дополнительно:
C++
2	
  
ПЛАН
Life - is a wonderful adventure,
worthy to suffer for the sake of
successes and failures.
“
R. Odilgton•  Рабочий процесс и эстимация проекта
•  Стандартизация взаимодействия BE и FE
•  Автогенерация документации
•  Актуальность документации API как фактор
оптимизации работы
•  Автоматизация сборки мобильных приложений
•  Примеры кейсов клиентских решений
“
3	
  
Проблематика
1.  Большинство	
  проектов	
  имеют	
  
схожую	
  архитектуру	
  и	
  часто	
  
приходится	
  делать	
  однотипные	
  
вещи.	
  	
  
2.  Поддержка	
  таких	
  проектов	
  очень	
  
затруднительное	
  дело.	
  	
  
3.  Отсутствие	
  макетов	
  на	
  
начальном	
  этапе	
  разработки	
  
приложения.	
  Задержки	
  их	
  со	
  
стороны	
  клиента.	
  
4.  Непонимание	
  команды	
  всей	
  
бизнес	
  логики	
  проекта	
  
4	
  
	
  
Часто	
  команда	
  даже	
  не	
  читает	
  
спецификацию	
  по	
  проекту,	
  а	
  
просто	
  начинает	
  выполнять	
  
задачи	
  по	
  спринту	
  в	
  JIRA-­‐e.	
  	
  
	
  
Такой	
  подход	
  обязательно	
  
будет	
  приводить	
  к	
  ситуациям:	
  
«А	
  я	
  себе	
  это	
  по	
  другому	
  видел"	
  	
  
«Ну	
  сейчас	
  быстренько	
  переделаю".	
  	
  
Хороший программист
никогда не выполнит лишнюю
работу, поэтому основа
успеха проекта – это его
структурированность с
самого начала разработки
ESTIMATION	
  
AND	
  
WORKFLOW	
  
5	
  
Проектирование и прототипирование
1.  ER	
  диаграмма	
  базы	
  данных	
  	
  
2.  Диграмма	
  последовательности,	
  	
  workflow	
  
диаграмма	
  	
  
3.  Диаграмма	
  потоков	
  данных,	
  DFD,	
  Data	
  
flow	
  Diagramm	
  	
  
4.  Спецификация	
  по	
  протоколу	
  
взаимодействия	
  приложения	
  с	
  сервером.	
  	
  
6	
  
Бэкенд
7	
  
1.  HMVC	
  
2.  Один	
  контроллер	
  на	
  одну	
  модель	
  
3.	
  Ограничение	
  доступа	
  через	
  ACL	
  
4.	
  Поддержка	
  связанных	
  объектов,	
  
фильтрация	
  	
  по	
  свойствам	
  модели	
  на	
  уровне	
  
логической	
  операции	
  AND	
  
5.	
  Генерация	
  документации	
  
ДОКУМЕНТАЦИЯ	
  API	
  
VideoMedicine
8	
  
Javascript
Javascript один из наиболее
гибких языков
программирования и он
позволяет сделать одну и ту же
вещь многими способами, как
ни один другой язык.
9	
  
var	
  array	
  =	
  [	
  ...	
  ];	
  
//способ	
  1	
  
var	
  shuffle	
  =	
  func‘on(array)	
  {	
  ...	
  }	
  
	
  
//способ	
  2	
  
func‘on	
  shuffle(array)	
  {	
  ...	
  }	
  
	
  
//способ	
  3	
  
func‘on	
  shuffle()	
  {	
  ...	
  }	
  
shuffle.call(array);	
  
	
  
//способ	
  4	
  
Array.prototype.shuffle	
  =	
  func‘on()	
  {	
  ...	
  }	
  
Balance	
  
	
  
Одним	
  из	
  важнейших	
  
признаков	
  хорошего	
  кода	
  
является	
  его	
  понятность.	
  
Понятность	
  же	
  –	
  это	
  понятие	
  
сугубо	
  человеческое.	
  
Компилятору	
  все	
  равно	
  как	
  
что	
  называется,	
  он	
  не	
  вникает	
  
в	
  суть;	
  только	
  человек	
  читает	
  
код.	
  Только	
  человек	
  может	
  из	
  
названия	
  метода	
  представить	
  
себе,	
  что	
  именно	
  метод	
  
делает.	
  
Javascript
10	
  
Tools
Grunt
Automa‘on,	
  performing	
  repe‘‘ve	
  tasks	
  like	
  
minifica‘on,	
  compila‘on.	
  
Build	
  system	
  automa‘ng	
  tasks:	
  minifica‘on	
  and	
  copying	
  
of	
  all	
  JS	
  files,	
  sta‘c	
  images,	
  capable	
  of	
  watching	
  files	
  	
  
Gulp
11	
  
Result
90	
  
30	
  
0	
  
10	
  
20	
  
30	
  
40	
  
50	
  
60	
  
70	
  
80	
  
90	
  
100	
  
Запросы
Исходный	
   Итоговый	
  
4	
  
1,5	
  
0	
  
0,5	
  
1	
  
1,5	
  
2	
  
2,5	
  
3	
  
3,5	
  
4	
  
4,5	
  
Загрузка
Исходный	
   Итоговый	
  
Сэкономлено 5 МБ траффика
12	
  
PhoneGap
Phonegap	
  (cordova)	
  позволяет	
  
существенно	
  экономить	
  время.	
  А	
  
именно,	
  пропадает	
  необходимость	
  
делать	
  это	
  все	
  вручную,	
  а	
  ведь	
  для	
  
phonegap	
  приложений	
  минификация	
  и	
  
оптимизация	
  кода	
  и	
  картинок	
  
необходима.	
  	
  
Без	
  нее	
  вы	
  получите	
  приложение	
  
весом	
  over	
  100500	
  мб	
  которое	
  будет	
  
на	
  более	
  старых	
  девайсах	
  задыхаться	
  
уже	
  на	
  запуске	
  с	
  огромным	
  
количеством	
  ненужной	
  подгрузки.	
  	
  
13	
  
Автоматическая сборка билдов
Что	
  происходило	
  на	
  самом	
  деле?	
  	
  
Мы	
  комитим	
  данные,	
  система	
  их	
  видит,	
  подтягивает	
  изменения	
  и	
  тут	
  же	
  запускает	
  сборщик,	
  будь	
  
то	
  gulp	
  или	
  grunt.	
  После	
  того	
  как	
  они	
  отработали,	
  мы	
  запускали	
  сборку	
  билдов	
  под	
  нужные	
  
платформы.	
  	
  
Возможно	
  получить	
  
автоматизированную	
  систему,	
  
которая	
  слушала	
  коммиты.	
  От	
  нас	
  
требовалось	
  внимание	
  только	
  в	
  
моменты	
  когда	
  билд	
  не	
  собирался	
  и	
  
была	
  ошибка.	
  	
  
14	
  
THANK YOU !

More Related Content

What's hot

Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Sigma Software
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейSQALab
 
Страх и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаСтрах и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаMikhail Chinkov
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикSQALab
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисовSQALab
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Mail.ru Group
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without JavaOlena Syrota
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0beloslab
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooSQALab
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsSQALab
 
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...JSC “Arcadia Inc”
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingSQALab
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Alexander Babich
 
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромКак писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромKirill Kovalchuk
 

What's hot (19)

Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
 
Страх и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаСтрах и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжиниринга
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисов
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without Java
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в Badoo
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)
 
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромКак писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодером
 

Similar to Mobile Monday Kiev#1 - How to save time in Mobile Apps Development

Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovRuby Meditation
 
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsMicrosoft
 
Организация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm finalОрганизация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm finalMicrosoft
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаTatyanazaxarova
 
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...Inhacking
 
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Аліна Шепшелей
 
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван МоскалёвYandex
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Dell Foglight сегодня и завтра. Планы развития
Dell Foglight сегодня и завтра. Планы развитияDell Foglight сегодня и завтра. Планы развития
Dell Foglight сегодня и завтра. Планы развитияBAKOTECH
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?etyumentcev
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended versionIvan Krylov
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьGoIT
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)Алексей Панфилов
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspbGonchik Tsymzhitov
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?COMAQA.BY
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 

Similar to Mobile Monday Kiev#1 - How to save time in Mobile Apps Development (20)

Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
 
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
 
Организация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm finalОрганизация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm final
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кода
 
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
 
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
 
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Dell Foglight сегодня и завтра. Планы развития
Dell Foglight сегодня и завтра. Планы развитияDell Foglight сегодня и завтра. Планы развития
Dell Foglight сегодня и завтра. Планы развития
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended version
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
Appery.io Ukraine_2016
Appery.io Ukraine_2016Appery.io Ukraine_2016
Appery.io Ukraine_2016
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
0. hello java world
0. hello java world0. hello java world
0. hello java world
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 

More from Intersog

The power of 1 on 1
The power of 1 on 1 The power of 1 on 1
The power of 1 on 1 Intersog
 
FrontEnd: JS + css + html
FrontEnd: JS + css + htmlFrontEnd: JS + css + html
FrontEnd: JS + css + htmlIntersog
 
Clients mean all_for_us
Clients mean all_for_usClients mean all_for_us
Clients mean all_for_usIntersog
 
Intersog Hack_n_Tell. Docker. First steps.
Intersog Hack_n_Tell. Docker. First steps.Intersog Hack_n_Tell. Docker. First steps.
Intersog Hack_n_Tell. Docker. First steps.Intersog
 
How to bring greater QA value with a little bit of release management
How to bring greater QA value with a little bit of release managementHow to bring greater QA value with a little bit of release management
How to bring greater QA value with a little bit of release managementIntersog
 
How to Create a Data Infrastructure
How to Create a Data InfrastructureHow to Create a Data Infrastructure
How to Create a Data InfrastructureIntersog
 
No one likes getting up at 3 am to fix bugs OR how to be a better developer
No one likes getting up at 3 am to fix bugs OR how to be a better developerNo one likes getting up at 3 am to fix bugs OR how to be a better developer
No one likes getting up at 3 am to fix bugs OR how to be a better developerIntersog
 
Как не завалить клиентское интервью
Как не завалить клиентское интервьюКак не завалить клиентское интервью
Как не завалить клиентское интервьюIntersog
 
Agile business development.
Agile business development. Agile business development.
Agile business development. Intersog
 
Infographic based on "Scrum: the art of doing twice the work in half the time"
Infographic based on "Scrum: the art of doing twice the work in half the time"Infographic based on "Scrum: the art of doing twice the work in half the time"
Infographic based on "Scrum: the art of doing twice the work in half the time"Intersog
 
Java4hipsters
Java4hipsters Java4hipsters
Java4hipsters Intersog
 
Final countdown-in-sales
Final countdown-in-salesFinal countdown-in-sales
Final countdown-in-salesIntersog
 
Как пройти пути от любительских поделок на Arduino до промышленных решений за...
Как пройти пути от любительских поделок на Arduino до промышленных решений за...Как пройти пути от любительских поделок на Arduino до промышленных решений за...
Как пройти пути от любительских поделок на Arduino до промышленных решений за...Intersog
 
Стек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPСтек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPIntersog
 
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft AzureDIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft AzureIntersog
 
Zigbee social network
Zigbee social networkZigbee social network
Zigbee social networkIntersog
 
​Успешные, популярные и интересные IoT проекты в США. Тренды
​Успешные, популярные и интересные IoT проекты в США. Тренды​Успешные, популярные и интересные IoT проекты в США. Тренды
​Успешные, популярные и интересные IoT проекты в США. ТрендыIntersog
 
Small tips для иррационала
Small tips для иррационалаSmall tips для иррационала
Small tips для иррационалаIntersog
 
Healthcare. Правила коммуникации.
Healthcare. Правила коммуникации.Healthcare. Правила коммуникации.
Healthcare. Правила коммуникации.Intersog
 
The Unicorn Workflow
The Unicorn WorkflowThe Unicorn Workflow
The Unicorn WorkflowIntersog
 

More from Intersog (20)

The power of 1 on 1
The power of 1 on 1 The power of 1 on 1
The power of 1 on 1
 
FrontEnd: JS + css + html
FrontEnd: JS + css + htmlFrontEnd: JS + css + html
FrontEnd: JS + css + html
 
Clients mean all_for_us
Clients mean all_for_usClients mean all_for_us
Clients mean all_for_us
 
Intersog Hack_n_Tell. Docker. First steps.
Intersog Hack_n_Tell. Docker. First steps.Intersog Hack_n_Tell. Docker. First steps.
Intersog Hack_n_Tell. Docker. First steps.
 
How to bring greater QA value with a little bit of release management
How to bring greater QA value with a little bit of release managementHow to bring greater QA value with a little bit of release management
How to bring greater QA value with a little bit of release management
 
How to Create a Data Infrastructure
How to Create a Data InfrastructureHow to Create a Data Infrastructure
How to Create a Data Infrastructure
 
No one likes getting up at 3 am to fix bugs OR how to be a better developer
No one likes getting up at 3 am to fix bugs OR how to be a better developerNo one likes getting up at 3 am to fix bugs OR how to be a better developer
No one likes getting up at 3 am to fix bugs OR how to be a better developer
 
Как не завалить клиентское интервью
Как не завалить клиентское интервьюКак не завалить клиентское интервью
Как не завалить клиентское интервью
 
Agile business development.
Agile business development. Agile business development.
Agile business development.
 
Infographic based on "Scrum: the art of doing twice the work in half the time"
Infographic based on "Scrum: the art of doing twice the work in half the time"Infographic based on "Scrum: the art of doing twice the work in half the time"
Infographic based on "Scrum: the art of doing twice the work in half the time"
 
Java4hipsters
Java4hipsters Java4hipsters
Java4hipsters
 
Final countdown-in-sales
Final countdown-in-salesFinal countdown-in-sales
Final countdown-in-sales
 
Как пройти пути от любительских поделок на Arduino до промышленных решений за...
Как пройти пути от любительских поделок на Arduino до промышленных решений за...Как пройти пути от любительских поделок на Arduino до промышленных решений за...
Как пройти пути от любительских поделок на Arduino до промышленных решений за...
 
Стек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPСтек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMP
 
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft AzureDIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
 
Zigbee social network
Zigbee social networkZigbee social network
Zigbee social network
 
​Успешные, популярные и интересные IoT проекты в США. Тренды
​Успешные, популярные и интересные IoT проекты в США. Тренды​Успешные, популярные и интересные IoT проекты в США. Тренды
​Успешные, популярные и интересные IoT проекты в США. Тренды
 
Small tips для иррационала
Small tips для иррационалаSmall tips для иррационала
Small tips для иррационала
 
Healthcare. Правила коммуникации.
Healthcare. Правила коммуникации.Healthcare. Правила коммуникации.
Healthcare. Правила коммуникации.
 
The Unicorn Workflow
The Unicorn WorkflowThe Unicorn Workflow
The Unicorn Workflow
 

Mobile Monday Kiev#1 - How to save time in Mobile Apps Development

  • 1. Как сэкономить время при разработке мобильных приложений Intersog   Mobile  Monday   June,  25th-­‐2015  
  • 2. Introduction Oleg Timoshenko Team Lead, Front End Опыт в разработке – 6 лет Технологии: PHP: Zend, Phalcon, CodeIgniter, Laravel JS: Angular, BackBone, Chaplin, PhoneGap Дополнительно: Java Andrey Radilov Team Lead, Back End Опыт в разработке – 10 лет Технологии: PHP: Zend, Phalcon, CodeIgniter, Laravel, Yii, Kohana JS: Angular, BackBone, Chaplin Дополнительно: C++ 2  
  • 3. ПЛАН Life - is a wonderful adventure, worthy to suffer for the sake of successes and failures. “ R. Odilgton•  Рабочий процесс и эстимация проекта •  Стандартизация взаимодействия BE и FE •  Автогенерация документации •  Актуальность документации API как фактор оптимизации работы •  Автоматизация сборки мобильных приложений •  Примеры кейсов клиентских решений “ 3  
  • 4. Проблематика 1.  Большинство  проектов  имеют   схожую  архитектуру  и  часто   приходится  делать  однотипные   вещи.     2.  Поддержка  таких  проектов  очень   затруднительное  дело.     3.  Отсутствие  макетов  на   начальном  этапе  разработки   приложения.  Задержки  их  со   стороны  клиента.   4.  Непонимание  команды  всей   бизнес  логики  проекта   4     Часто  команда  даже  не  читает   спецификацию  по  проекту,  а   просто  начинает  выполнять   задачи  по  спринту  в  JIRA-­‐e.       Такой  подход  обязательно   будет  приводить  к  ситуациям:   «А  я  себе  это  по  другому  видел"     «Ну  сейчас  быстренько  переделаю".    
  • 5. Хороший программист никогда не выполнит лишнюю работу, поэтому основа успеха проекта – это его структурированность с самого начала разработки ESTIMATION   AND   WORKFLOW   5  
  • 6. Проектирование и прототипирование 1.  ER  диаграмма  базы  данных     2.  Диграмма  последовательности,    workflow   диаграмма     3.  Диаграмма  потоков  данных,  DFD,  Data   flow  Diagramm     4.  Спецификация  по  протоколу   взаимодействия  приложения  с  сервером.     6  
  • 7. Бэкенд 7   1.  HMVC   2.  Один  контроллер  на  одну  модель   3.  Ограничение  доступа  через  ACL   4.  Поддержка  связанных  объектов,   фильтрация    по  свойствам  модели  на  уровне   логической  операции  AND   5.  Генерация  документации  
  • 10. Javascript Javascript один из наиболее гибких языков программирования и он позволяет сделать одну и ту же вещь многими способами, как ни один другой язык. 9   var  array  =  [  ...  ];   //способ  1   var  shuffle  =  func‘on(array)  {  ...  }     //способ  2   func‘on  shuffle(array)  {  ...  }     //способ  3   func‘on  shuffle()  {  ...  }   shuffle.call(array);     //способ  4   Array.prototype.shuffle  =  func‘on()  {  ...  }  
  • 11. Balance     Одним  из  важнейших   признаков  хорошего  кода   является  его  понятность.   Понятность  же  –  это  понятие   сугубо  человеческое.   Компилятору  все  равно  как   что  называется,  он  не  вникает   в  суть;  только  человек  читает   код.  Только  человек  может  из   названия  метода  представить   себе,  что  именно  метод   делает.   Javascript 10  
  • 12. Tools Grunt Automa‘on,  performing  repe‘‘ve  tasks  like   minifica‘on,  compila‘on.   Build  system  automa‘ng  tasks:  minifica‘on  and  copying   of  all  JS  files,  sta‘c  images,  capable  of  watching  files     Gulp 11  
  • 13. Result 90   30   0   10   20   30   40   50   60   70   80   90   100   Запросы Исходный   Итоговый   4   1,5   0   0,5   1   1,5   2   2,5   3   3,5   4   4,5   Загрузка Исходный   Итоговый   Сэкономлено 5 МБ траффика 12  
  • 14. PhoneGap Phonegap  (cordova)  позволяет   существенно  экономить  время.  А   именно,  пропадает  необходимость   делать  это  все  вручную,  а  ведь  для   phonegap  приложений  минификация  и   оптимизация  кода  и  картинок   необходима.     Без  нее  вы  получите  приложение   весом  over  100500  мб  которое  будет   на  более  старых  девайсах  задыхаться   уже  на  запуске  с  огромным   количеством  ненужной  подгрузки.     13  
  • 15. Автоматическая сборка билдов Что  происходило  на  самом  деле?     Мы  комитим  данные,  система  их  видит,  подтягивает  изменения  и  тут  же  запускает  сборщик,  будь   то  gulp  или  grunt.  После  того  как  они  отработали,  мы  запускали  сборку  билдов  под  нужные   платформы.     Возможно  получить   автоматизированную  систему,   которая  слушала  коммиты.  От  нас   требовалось  внимание  только  в   моменты  когда  билд  не  собирался  и   была  ошибка.     14