Всем привет! В этой статье я хочу рассказать о новой библиотеке, которая привносит шаблон проектирования MVI в Android. Эта библиотека называется MVIDroid, написана 100% на языке Kotlin, легковесная и использует RxJava 2.x. Автор библиотеки лично я, исходный код её доступен на GitHub, а подключить её можно через JitPack (ссылка на репозиторий в конце статьи). Эта статься состоит из двух частей: общее описание библиотеки и пример её использования.
Рубрика «architecture» - 6
MVIDroid: обзор новой библиотеки MVI (Model-View-Intent)
2018-07-21 в 10:49, admin, рубрики: android development, architecture, mvi, pattern, архитектура, Разработка под android, шаблонИнтеллектуальные системы поддержки принятия решений — краткий обзор
2018-05-28 в 9:30, admin, рубрики: AI, architecture, big data, data mining, deep learning, DSS, ECM/СЭД, python, Блог компании Open Data Science, ИСППР, машинное обучение, сппр, теория игр
Дисклеймер
Целью написания этой статьи было сделать краткий обзор принципов построения Интеллектуальных Систем Поддержки Принятия Решений (ИСППР), роли машинного обучения, теории игр, классического моделирования и примеров их использования в СППР. Целью статьи не является забуриться вглубь тяжелой теории автоматов, самообучаемых машин, равно как и инструментов BI.
Введение
Существет несколько определений ИСППР, которые, в общем-то, крутятся вокруг одного и того же функционала. В общем виде, ИСППР — это такая система, которая ассистирует ЛПР (Лицам, Принимающим Решения) в принятии этих самых решений, используя инструментарии дата майнинга, моделирования и визуализации, обладает дружелюбным (G)UI, устойчива по качеству, интерактивна и гибка по настройкам.
Зачем нужны СППР:
- Сложность в принятии решений
- Необходимость в точной оценке различных альтернатив
- Необходимость предсказательного функционала
- Необходимость мультипотокового входа (для принятия решения нужны выводы на основе данных, экспертные оценки, известные ограничения и т.п.)
Есть ли жизнь без архитектуры?
2018-05-08 в 8:25, admin, рубрики: android, architecture, mvc, mvp, Блог компании FunCorp, разработка мобильных приложений, Разработка под android
Основная часть кода большинства современных приложений наверняка была написана ещё во времена Android 4.0. Приложения пережили время ContentProvider, RoboSpice, различных библиотек и архитектурных подходов. Поэтому очень важно иметь архитектуру, которая будет оставаться гибкой не только к функциональным изменениям, но и готова к новым веяниям, технологиям и инструментам.
В этой статье я хотел бы рассказать об архитектуре приложения IFunny, о принципах, которых мы придерживаемся, и о том, как решаются основные проблемы, возникающие в процессе разработки.
Ищем спикеров на Java MeetUp
2018-04-28 в 9:47, admin, рубрики: architecture, BigData, java, kotlin, meetups, qa, Raiffeisen, raiffeisenIT, scala, Блог компании Райффайзенбанк, конференции, Райффайзенбанк, Учебный процесс в IT
Мы активно развиваем внутренние профессиональные сообщества в Райффайзенбанке. По каждому из направлений мы регулярно проводим встречи и делимся новостями о том, что происходит у кого на проекте, кто что узнал интересного и чему может научить.
Мы знаем, как важно общаться с людьми из других команд и проектов, иметь возможность спросить совета, обсуждать только что появившиеся технологии и поделиться опытом. Поэтому 16 мая, в московском офисе Райффайзенбанка, мы организуем наш первый открытый Java MeetUp.
Подробности под катом.
Читать полностью »
О жизни, свободе и стремлении к счастью пользователя API
2018-03-14 в 12:39, admin, рубрики: .net, api, architecture, dotnext, dotnext2018piter, архитектура, Блог компании JUG.ru GroupМы постоянно сталкиваемся с системами, созданными другими людьми. Будь то UI приложений в смартфоне или облачные инфраструктуры современного Интернета — именно процесс взаимодействия определяет наши ощущения, впечатления, и в конечном счёте — отношение к технологии. Мы можем быть в роли инженеров, разработчиков или простых пользователей — user experience важен везде. Вокруг систем с хорошим UX образуется общество счастливых, довольных и продуктивных людей; плохой UX приводит только к боли и страданиям.
Даже если специально не отдаешь себе отчёт, то создавая новый софт, обязательно создаешь user experience. Когда код уже написан, с ним начинают взаимодействовать люди. Может быть, это разработчики из твоей команды. Может, это мобильные разработчики, пытающиеся использовать твой API, или сисадмины, на ночном держурстве пытающиеся разобраться, почему всё сломалось. Сами примеры могут быть совершенно различными по сути, но к ним применимы общие принципы. В этом хабропосте мы поговорим об идеях по поводу UX, дизайна API, психологии обучения, и других связанных областей. Рассмотрим применение хороших практик на самых разных уровнях разработки приложений. Что бы ты ни делал — писал базы данных, библиотеки, hypermedia API или мобильные приложения — рано или поздно кто-то прикоснется к твоему коду — и пусть уж он получит от этого удовольствие, верно?
Нативная инверсия зависимостей в TypeScript и React
2018-03-12 в 7:48, admin, рубрики: architecture, composition root, constructor injection, dependency injection, inversify, javascript, React, service locator, solid, TypeScript, Блог компании ДоксВижн, Разработка веб-сайтовКогда я задумался о внедрении зависимостей в TypeScript, то первое, что мне посоветовали — inversify. Я посмотрел эту и другие библиотеки, реализующие паттерн Service Locator, и даже сделал свою собственную — typedin.
Но когда я работал над версией typedin 2.0, то в конце концов понял, что вообще никакой библиотеки не нужно. В TypeScript есть все необходимое.
В поисках идеальной архитектуры
2017-12-20 в 9:56, admin, рубрики: architecture, iOS, ios development, swift, Блог компании REDMADROBOT, Проектирование и рефакторинг, разработка под iOS
За 9 лет работы фич в проектах роботов становилось все больше, запутаться в коде становилось все проще.
Когда разработчиков стало больше десятка, появилась еще одна проблема – болезненная ротация людей между проектами. Аутсорс-разработка славится жесткими дедлайнами, и у разработчиков нет месяцев или недель на погружение в особенности нового проекта, в то же время работа над разными проектами нужна для развития специалистов.
Главная проблема, которая возникает при долгосрочном развитии приложения – масштабируемость. Решить ее может переход на новую архитектуру или рефакторинг кодовой базы и добавление новых сущностей, которые разгружают объекты с большим количеством обязанностей.
Читать полностью »
В разрезе: новостной агрегатор на Android с бэкендом. Разработка под Android: выработка архитектуры
2017-11-29 в 4:02, admin, рубрики: android, architecture, architecture design, clean architecture, Программирование, Проектирование и рефакторинг, Разработка под androidВводная часть (со ссылками на все статьи)
В водной статье я уже писал о том, что планируемым клиентом для проекта должен стать клиент Android: доступный большой аудитории, лёгкий, функциональный, красивый, быстрый (не приложение, а мечта!). Если с основаниями выбора платформы всё понятно, то с тем как реализовывать на базе неё все перечисленные требования – ясно было далеко не всё.
Ранее разработкой под Android не занимался поэтому достаточно ценными источниками информации для меня являлись:
- Книга «Android Programming: The Big Nerd Ranch Guide» (ознакомление с переводом от издательства «Питер» подтвердило ранее имевшийся принцип: «можешь читать оригинал – читай оригинал»);
- Сайт Google по разработке для Android;
- Книга «Efficient Android Threading» от издательства O’Reilly;
- Видео с проекта Яндекса «Мобилизация».
После изучения указанных источников вопросов с архитектурой Android и взаимодействия их компонентов не осталось. Однако остался один наиважнейший вопрос: какова будет структура самого приложения? Пара примеров и прототипов показала, при росте функционала всё быстро начинало превращаться в «лапшу»:
- Логика работы с объектами Android (Activity, Preferences, TextView ….) перемешивалась с бизнес-логикой;
- Объекты хранения фигурировали в коде построения интерфейса;
- Модульное тестирование превращалось в ад из-за необходимости работы с родными объектами Android и их подмены экземплярами Robolectric;
- Проверка асинхронного кода была возможна только на устройстве или эмуляторе (по принципу: «запустил-проверил-повторил»).
RxPM — реактивная реализация паттерна Presentation Model
2017-11-22 в 10:45, admin, рубрики: android, architecture, Presentation Model, RxPM, Блог компании MobileUp, Проектирование и рефакторинг, разработка мобильных приложений, Разработка под android, реактивное программирование
Через полгода после выхода прошлой статьи о сравнении RxPM c другими презентационными паттернами мы с Jeevuz, наконец, готовы представить библиотеку RxPM — реактивную реализацию паттерна Presentation Model. Давайте сделаем небольшой обзор основных компонентов библиотеки и покажем, как их использовать.
Введение в Seneca.JS
2017-11-13 в 15:02, admin, рубрики: architecture, framework, javascript, Microservices, node.js, nodejsSeneca — microservices toolkit для Node.JS. Он предоставляет плагины, которые заботятся об основах вашего приложения. Это позволяет сосредоточиться на реальной бизнес-логике. Нет необходимости беспокоиться о том, какую базу данных использовать, как структурировать компоненты или как управлять зависимостями. Просто начните писать код.
Вы описываете всё как действия. Действия вызываются всякий раз, когда они соответствуют набору свойств. Ваш вызывающий код не знает и не заботится, какое действие выполняет работу. Один объект JavaScript входит, а другой выходит, асинхронно.
Чем Seneca.js не является
Я люблю конкретные сравнения, и увы я быстро делаю поспешные обобщения, которые могут в конечном итоге причинить мне боль.
Чтобы этого избежать, вот список того, что нет у Seneca:
- Seneca — это не “строгий” фреймворк. Seneca не навязывает вам ни архитектуру приложения ни каких-либо подходов. Хотите разместить все свое приложение в одном действии? Вы можете. Хотите сделать каждое действие всего в 5 строк кода? Вы тоже можете это сделать. Seneca невероятно надежен и будет работать практически со всеми архитектурными решениями, которые вы принимаете.Читать полностью »

