Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...Badoo Development
В крупном интернет проекте при построении непрерывной интеграции возникает множество проблем и рутинной работы. Этот доклад о том, как мы избежали проблем и автоматизировали большую часть работы. Мы показали связь непрерывной интеграции со всеми стадиями разработки программного продукта.
А также вы узнаете из доклада:
1. Модель разработки каждой задаче в отдельной ветке, плюсы и минусы.
2. Как автоматизировать рутинные операции в системе контроля версий.
3. Организации работы с хуками в Git в условиях большого количества репозиториев.
4. Автоматизация работы с баг трекером, как у нас проходит ревью кода.
5. Построение непрерывной интеграции для компилируемых и не компилируемых компонентов.
6. Автоматизация сборок с зависимостями из веток релиза для компилируемых компонент.
7. Continuous delivery и почему большое количество веток не всегда плохое решение для данного подхода.
И конечно же Release engineering, как он влияет на разработку и качество продукта.
После доклады вы поймете все основные процессы при построении непрерывной интеграции и увидите как важна автоматизация в данном процессе.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Fwdays
В докладе расскажу о шишках, набитых в процессе настройки SEO для конкретного проекта. Речь пойдет о настройке SEO для своего одностраничного приложения как с привлечением сторонних сервисов, так и самостоятельно, используя PhantomJS или рендеринг на стороне сервера. Также, поделюсь особенностями размещения share-кнопок от различных провайдеров.
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...РИФ-Воронеж
Firebase стал одной из главных премьер прошедшего Google I/O 2016, а уже через 3 недели мы выпустили в релиз первый продукт, использующий его возможности. Я расскажу о том, чем Firebase может быть полезен мобильным разработчикам, чем хороша и плоха система аналитики, зачем нам ещё один иструмент сбора крашей, что делать, если есть идея, но нет бэкенда, а также как изменять приложение "на лету". Отдельно остановимся на том, как при помощи Firebase достучаться до пользователя Push-нотификациями.
Альтернативные способы изучения программирования с нуляCOMAQA.BY
Мы поговорим о мировых практиках изучения программирования с нуля в игровой форме – от программирования лего роботов, до ... интрига-интрига, приходите и узнаете 10-ток альтернативных вариантов изучения этой замечательной дисциплины.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...Badoo Development
В крупном интернет проекте при построении непрерывной интеграции возникает множество проблем и рутинной работы. Этот доклад о том, как мы избежали проблем и автоматизировали большую часть работы. Мы показали связь непрерывной интеграции со всеми стадиями разработки программного продукта.
А также вы узнаете из доклада:
1. Модель разработки каждой задаче в отдельной ветке, плюсы и минусы.
2. Как автоматизировать рутинные операции в системе контроля версий.
3. Организации работы с хуками в Git в условиях большого количества репозиториев.
4. Автоматизация работы с баг трекером, как у нас проходит ревью кода.
5. Построение непрерывной интеграции для компилируемых и не компилируемых компонентов.
6. Автоматизация сборок с зависимостями из веток релиза для компилируемых компонент.
7. Continuous delivery и почему большое количество веток не всегда плохое решение для данного подхода.
И конечно же Release engineering, как он влияет на разработку и качество продукта.
После доклады вы поймете все основные процессы при построении непрерывной интеграции и увидите как важна автоматизация в данном процессе.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Fwdays
В докладе расскажу о шишках, набитых в процессе настройки SEO для конкретного проекта. Речь пойдет о настройке SEO для своего одностраничного приложения как с привлечением сторонних сервисов, так и самостоятельно, используя PhantomJS или рендеринг на стороне сервера. Также, поделюсь особенностями размещения share-кнопок от различных провайдеров.
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...РИФ-Воронеж
Firebase стал одной из главных премьер прошедшего Google I/O 2016, а уже через 3 недели мы выпустили в релиз первый продукт, использующий его возможности. Я расскажу о том, чем Firebase может быть полезен мобильным разработчикам, чем хороша и плоха система аналитики, зачем нам ещё один иструмент сбора крашей, что делать, если есть идея, но нет бэкенда, а также как изменять приложение "на лету". Отдельно остановимся на том, как при помощи Firebase достучаться до пользователя Push-нотификациями.
Альтернативные способы изучения программирования с нуляCOMAQA.BY
Мы поговорим о мировых практиках изучения программирования с нуля в игровой форме – от программирования лего роботов, до ... интрига-интрига, приходите и узнаете 10-ток альтернативных вариантов изучения этой замечательной дисциплины.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
Unity: "Очевидное-невероятное” или хитрости разработки на Unity AndroidDevGAMM Conference
Unity для платформы Android решает за разработчика огромное количество проблем. Что впрочем не отменяет умелое использование этого мощного инструментария. Приходите и узнайте секреты и хитрости разработки от участника команды Unity Android.
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
В докладе мы рассмотрим этапы развития приложения, начиная от монолитного Web приложения, до распределенной платформы по управлению бизнес-процессами. Покажем этапы развития, задачи и вызовы, которые возникали на каждом их них. Проанализируем различные аспекты, влияющие на развитие архитектуры, такие как бизнес-требования, технологические тренды и возможные ограничения.
Юрий Василевский «Автоматизация в XCode»
Yandex Mobile Camp в Санкт-Петербурге 2012
http://events.yandex.ru/events/yamobcamp/spb-may-2012/
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач. Мы обсудим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Yandex Mobile Camp в Санкт-Петербурге, 30 мая 2012
Юрий Василевский, ведущий разработчик EPAM Systems, Mobile Solutions
Тема: Автоматизация в XCode
Тезисы:
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач.
Мы рассмотрим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Самый простой и распространенный способ сборки приложения - это сборка с помощью файла pom.xml. т.е. с помощью Maven.
Мавен - это инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации.
Сборка проекта происходит в любой операционной системе. Файл проекта один и тот же.
Редко какие проекты пишутся без использования сторонних библиотек(зависимостей). Эти сторонние библиотеки зачастую тоже в свою очередь используют библиотеки разных версий. Мавен позволяет управлять такими сложными зависимостями. Что позволяет разрешать конфликты версий и в случае необходимости легко переходить на новые версии библиотек.
В приложени Android мы подключили DeviceHive Java библиотеку, которая инкапсулирует логику общения с устройствами через DeviceHive сервер. Что позволило нам легко и непринужденно написать логику получения температуры с цифрового датчика ds18b20, подключенного к микросхеме ESP8266, в реальном времени, а также написать 2 команды на включение и выключения светодиода, который так же подключен к ESP8266.
Семинар по Node.js в КПИ 20 октября 2014. Докладчики: Тимур Шемсединов, Никита Савченко, Максим Петренко. Краткое содержание:
* Что такое Node.js и как работает JavaScript в V8
* Профессионалы расскажут, почему они выбрали Node.js
* Вы узнаете его сильные и слабые стороны и где его лучше применять
* Будет полный обзор особеностей и внутреннего строения Node.js
* Примеры внедрения и Highload-проекты
* Вопросы развертывания, хостинг, тестирования, и отладки
* Где и что учить, что читать, как осваивать
2 Продуктивность работы в IDE; Разработка для Windows 10 Storesandy97
Доклад на семинаре компании Embarcadero.
Андрей Совцов знакомит с новыми возможностями IDE RAD Studio Tokyo и обновлениях в VCL и других библиотеках для разработки приложений для Windows 10 и Windows Store
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Ontico
— Космическая скорость разработки приложения (iOs-приложение за неделю);
— Сравнение типичного экрана со списком данных на Objective-C и React Native;
— Поддержка приложения, Debugging;
— Ограничения React Native, которые следует учитывать;
— Бонус: при написании приложения для iOs — 80% Android приложения в подарок :)
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
Similar to Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle (20)
DataScience Lab, 13 мая 2017
Коррекция геометрических искажений оптических спутниковых снимков
Алексей Кравченко (Senior Data Scientist at Zoral Labs)
Мы рассмотрим разнообразие существующих спутниковых данных и способов их применения в сельском и лесном хозяйстве, картографировании земной поверхности. Далее сфокусируемся на задаче геометрической коррекции снимков как первом шаге процесса обработки спутниковых данных, включая геопривязку снимков, регистрацию изображений, субпиксельную идентификацию контрольных точек, совмещение каналов. Также расскажем о некоторых интересных и неожиданных подходах к определению ориентации и jitter спутников и построению маски облачности.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Kappa Architecture: How to implement a real-time streaming data analytics engine
Juantomás García (Data Solutions Manager at OpenSistemas, Madrid, Spain)
We will have an introduction of what is the kappa architecture vs lambda architecture. We will see how kappa architecture is a good solution to implement solutions in (almost) real time when we need to analyze data in streaming. We will show in a case of real use: how architecture is designed, how pipelines are organized and how data scientists use it. We will review the most used technologies to implement it from apache Kafka + spark using Scala to new tools like apache beam / google dataflow.
Все материалы: http://datascience.in.ua/report2017
Semgrex allows users to extract information from text using patterns that match syntactic dependencies in sentences. It provides examples of patterns that match parts of speech tags and dependency relations. The document also includes links to the Semgrex npm package, a demo application on GitHub, and resources for natural language processing and syntactic dependencies.
DataScience Lab 2017_Обзор методов детекции лиц на изображениеGeeksLab Odessa
DataScience Lab, 13 мая 2017
Обзор методов детекции лиц на изображение
Юрий Пащенко ( Research Engineer, Ring Labs)
В данном докладе мы предлагаем обзор наиболее новых и популярных методов обнаружения лиц, таких как Viola-Jones, Faster-RCNN, MTCCN и прочих. Мы обсудим основные критерии оценки качества алгоритма а также базы, включая FDDB, WIDER, IJB-A.
Все материалы: http://datascience.in.ua/report2017
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Сходство пациентов: вычистка дубликатов и предсказание пропущенных диагнозов
Виктор Сарапин (CEO at V.I.Tech)
Как эффективно определять дубликаты на десятках миллионов пациентов, и как определять пропущенные диагнозы и лечебные действия.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab, 13 мая 2017
Recent deep learning approaches for speech generation
Дмитрий Белевцов (Techlead at IBDI)
В последние пол года появилось несколько важных моделей на базе глубоких нейронных сетей, способных успешно синтезировать человеческую речь на уровне отдельных сэмплов. Это позволило обойти многие недостатки классических спектральных подходов. В этом докладе я сделаю небольшой обзор архитектур наиболее популярных сетей, таких как Wavenet и SampleRNN.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab, 13 мая 2017
Распределенные вычисления: использование BOINC в Data Science
Виталий Кошура (Software Developer at Lohika)
BOINC - это открытое программное обеспечение для распределенных вычислений. Данный доклад освещает использование приложения BOINC в различных областях науки, которые связаны с обработкой огромных массивов данных, на примере текущих активных исследовательских проектов.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab, 13 мая 2017
Магистерская программа "Data Science" в УКУ
Орест Купин(Master's Student at UCU)
В этом докладе я расскажу вам о магистерской программе со специализацией в анализе данных в Украинском Католическом Университете. Я расскажу про структуру программы, основные курсы, а также опишу свой опыт как студента УКУ и поговорю об вызовах с которыми мы столкнулись в этом году.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Cервинг моделей, построенных на больших данных с помощью Apache Spark
Степан Пушкарев (GM (Kazan) at Provectus / CTO at Hydrosphere.io)
После подготовки данных и обучения моделей на больших данных с использованием Apache Spark встает вопрос о том, как использовать обученные модели в реальных приложениях. Помимо модели важно не забывать про весь пайплайн пре-процессинга данных, который должен попасть в продакшн в том виде, в котором его спроектировал и реализовал дата саентист. Такие решения, как PMML/PFA, основанные на экспорте/импорте модели и алгоритма имеют очевидные недостатки и ограничения. В данном докладе мы предложим альтернативное решение, которое упрощает процесс использования моделей и пайплайнов в реальных боевых приложениях.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...GeeksLab Odessa
DataScience Lab, 13 мая 2017
BioVec: Word2Vec в задачах анализа геномных данных и биоинформатики
Дмитрий Новицкий (Старший научный сотрудник в ИПММС НАНУ)
Этот доклад посвящен bioVec: применению технологии word2vec в задачах биоинфоматики. Сначала мы напомним как работает Word2vec и аналогичные ему методы Word Embedding. Затем расскажем об особенностях Word2vec в применении к геномным последовательностям-- основному виду данных в биоинформатике. Как обучать bioVec, и применять эту технологию к задачам классификации белков, предсказания их функции и др. В заключении мы продемонстрируем примеры кода для обучения и использования bioVec.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко GeeksLab Odessa
DataScience Lab, 13 мая 2017
Data Sciences и Big Data в Телекоме
Александр Саенко (Software Engineer at SoftServe/CISCO)
Александр расскажет о некоторых интересных примерах использования Big Data и Data Science в Телекоме: оптимизация сотовой сети, улучшение клиентского опыта, модели прогнозирования местоположения мобильных устройств, предотвращения оттока абонентов, обнаружение фрода и других. Рассмотрит основные современные подходы к их решению на основе алгоритмов машинного обучения.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Высокопроизводительные вычислительные возможности для систем анализа данных
Михаил Федосеев ( Архитектор инфраструктурных решений, LanTec)
В докладе мы поговорим о hardware стороне систем анализа данных для случаев построения приватных облаков или локальных высокопроизводительных вычислительных кластеров. Рассмотрим какие технологии и комплексные решения от компании Hewlett Packard Enterprise позволяют ускорить процесс анализа данных. Это не только зарекомендовавшие в своей области лучшие в своем сегменте сервера линейки HPE Apollo, а так же высокоскоростные сетевые коммутаторы HPE, но и дополнительные вспомогательные элементы решения, такие как мощные графические карты NVIDIA и хост-процессоры Xeon Phi. Так же будет рассмотрен стек HPE Core HPC Software Stack, который позволяет администраторам контролировать использование ресурсов системы.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Мониторинг модных трендов с помощью глубокого обучения и TensorFlow, Ольга Романюк (Data Scientist at Eleks)
В течении последних 8 месяцев мы в Eleks работали над системой отслеживания модных трендов, основанной на глубинной остаточной нейронной сети с тождественным отображением. При тренировке сети мы использовали онлайн увеличение объема данных, а также распараллеливание данных по двум картам GPU. Мы создали эту систему с нуля при помощи TensorFlow. В презентации я расскажу о практической стороне проекта, нюансах реализации и подводных камнях, с которыми мы столкнулись во время работы.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Кто здесь? Автоматическая разметка спикеров на телефонных разговорах
Юрий Гуц (Machine Learning Engineer, DataRobot)
Автоматическая аннотация спикеров — интересная задача в обработке мультимедиа-данных. Нам нужно ответить на вопрос "Кто говорит когда?", не зная ничего о количестве и личности спикеров, присутствующих на записи. В этом докладе мы рассмотрим работающие методы для аннотации спикеров на телефонных разговорах.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...GeeksLab Odessa
From bag of texts to bag of clusters
Терпиль Евгений / Павел Худан (Data Scientists / NLP Engineer at YouScan)
Мы рассмотрим современные подходы к кластеризации текстов и их визуализации. Начиная от классического K-means на TF-IDF и заканчивая Deep Learning репрезентациями текстов. В качестве практического примера, мы проанализируем набор сообщений из соц. сетей и попробуем найти основные темы обсуждения.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...GeeksLab Odessa
Графические вероятностные модели для принятия решений в проектном управлении
Ольга Татаринцева (Data Scientist at Eleks)
Как часто вам приходится принимать решения, используя знания в определенной предметной области? На сколько хороши такие решения? А теперь представьте, что вы собрали знания лучших экспертов в предметной области. Похоже, что ваши решения, основанные на этих знаниях, будут куда более взвешенными, не так ли? Мы будем говорить о системе ProjectHealth, которая была построена на основе опыта лучших экспертов в проектном управлении в компании Eleks. Для реализации поставленной задачи была использована графовая вероятностная модель, а именно байесовская сеть, имплементированная на Python. За время работы над проектом мы прошли шаги от извлечения требований, поиска данных и построения модели с нуля до реализации BI дашборда с возможностью углубиться в детали, доходя до сырых данных. Сейчас ProjectHealth экономит большое количество времени для топ менеджмента и ресурсов компании, так как мониторит состояние бизнеса в малейших деталях ежедневно и делает это как настоящий эксперт.
Все материалы: http://datascience.in.ua/report2017
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...GeeksLab Odessa
DataScienceLab, 13 мая 2017
Оптимизация гиперпараметров машинного обучения при помощи Байесовской оптимизации
Максим Бевза (Research Engineer at Grammarly)
Все алгоритмы машинного обучения нуждаются в настройке (тьюнинге). Часто мы используем Grid Search или Randomized Search или нашу интуицию для подбора гиперпараметров. Байесовская оптимизация поможет нам направить Randomized Search в те места, которые наиболее перспективны, так, чтобы тот же (или лучший) результат мы получили за меньшее количество итераций.
Все материалы: http://datascience.in.ua/report2017
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот GeeksLab Odessa
DataScienceLab, 13 мая 2017
Как знать всё о покупателях (или почти всё)?
Дарина Перемот (ML Engineer at SynergyOne)
Раскроем собственный ответ на вопрос "Чего же хочет покупатель?". Поделимся результатами исследований транзакций и расскажем, есть ли у вас домашний питомец. А так же, продемонстрируем, как машинное обучение уже сейчас помогает узнавать вас ближе.
Все материалы: http://datascience.in.ua/report2017
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...GeeksLab Odessa
JS Lab 2017, 25 марта
Mapbox GL: как работают современные интерактивные карты
Владимир Агафонкин (Lead JavaScript Engineer at MapBox)
Mapbox GL JS — открытая JS-библиотека для создания современных интерактивных карт на основе WebGL. В разработке более трех лет, она сочетает в себе множество удивительных технологий, сложных алгоритмов и идей для достижения плавной отрисовки тысяч векторных объектов с миллионами точек в реальном времени. В этом докладе вы узнаете, как работает библиотека внутри, и с какими сложностями сталкиваются разработчики современных WebGL-приложений. В докладе: отрисовка шрифтов, триангуляция линий и полигонов, пространственные индексы, определение коллизий, расстановка надписей, кластеризация точек, обрезка фигур, упрощение линий, упаковка спрайтов, компактные бинарные форматы, параллельная обработка данных в браузере, тестирование отрисовки и другие сложности.
Все материалы: http://jslab.in.ua/2017
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js GeeksLab Odessa
JS Lab2017, 25 марта, Одесса
Под микроскопом: блеск и нищета микросервисов на node.js
Илья Климов (CEO at Javascript.Ninja)
"- Что это?
- Микросервис!
- И что он делает?
- Микропадает".
Про микросервисы сейчас не рассуждает только ленивый. Все рассказывают про то, как микросервисы спасают от сложности разработки, снижают время развертывание и повышают общую надежность систем. Этот доклад - про подводные камни, которые ждут оседлавших волну этого хайпа с Node.JS. Мы поговорим про ошибки, которые стоили мне и моей компании бессонных ночей, потерянной прибыли и, временами, веры в могущество микросервисной архитектуры.
Все материалы: http://jslab.in.ua/
Организаторы: http://geekslab.org.ua/
3. Что нам дает Gradle для Android?
•Groovy vs. XML
•Возможность кастомизации процесса сборки
•Build variants
•Управление зависимостями
•Поддержка Maven Central и Ivy
•Конфигурация Manifest-файла для различных сборок
•Android Signing Configuration
•ProGuard
•Тестирование
10. Что мы можем настроить для различных типов сборок и flavors?
•Поля класса BuildConfig
flavour1{
applicationId "com.example.package"
buildConfigField "String", "NAMESPACE",
""$applicationId ""
buildConfigField "String", "PROVIDER_AUTHORITY", "NAMESPACE"
}
•Конфигурация AndroidManifest (версия SDK, номер и имя версии приложения, пакет)
defaultConfig {
minSdkVersion 16
targetSdkVersion 19
versionCode 1
versionName "0.9"
}
11. Что мы можем настроить для различных типов сборок и flavors?
•Настройка параметров подписи (keystore, alias, password)
signingConfigs {
debug {
storeFile file('../debug.keystore')
}
release {
storeFile file('../release.keystore')
storePassword 'android'
keyAlias 'releasekey'
keyPassword 'android'
}
}
12. Что мы можем настроить для различных типов сборок и flavors?
•Использование кастомных placeholders в AndroidManifest:
defaultConfig {
manifestPlaceholders = [activityLabel:"defaultName"]
}
<activity android:name=".MainActivity" android:label="${activityLabel}" >
•Полный список можно посмотреть в классах DefaultBuildType и DefaultProductFlavor, а также BaseConfigImpl
15. Задача из практики
•Необходима возможность сборки нескольких apk приложения, которые будут отличаться UI, а также иметь несущественные отличия в функционале
•Обязательна возможность установки нескольких версий приложения на одно устройство
17. Шаг 2
•Для каждого flavor создается своя папка со специфическими ресурсами, манифестом и исходниками (по необходимости)
src/{flavor name}/java
src/{flavor name}/res
src/{flavor name}/AndroidManifest.xml
18. Шаг 3
•Общие исходники и ресурсы помещаем в src/main
19. Android Studio + Gradle
•Полная поддерка и регулярное обновление для новых версий Gradle Android plugin
•Возможность работы с различными BuildVariants
•Единая система сборки в IDE и command line
•Gradle wrapper
20. GradleWrapper
•Не нужно качать и устанавливать Gradle на локальной машине
•Поставка используемой версии Gradle вместе с проектом
•Shell скрипты для Windows, Mac, Linux для простого и быстрого запуска комманд для сборки
21. Заключение
•Gradle активно продвигается Google
•Фактически принудительный переход на Gradle в новых проектах при условии использования Android Studio
•Подавляющее большинство современных библиотек поддерживает Gradle
•Android Plugin активно развивается, но пока не очень хорошо документирован