Обновить
8
0

Engineering Lead

Отправить сообщение

Kotlin Object Multiplatform Mapper: сопоставляем коллекции правильно

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели1.6K

После публикации первой статьи я получил несколько отзывов и предложений, некоторые из которых взял в разработку. Первый доработкой стал автоматический маппинг коллекций.

Давайте узнаем, что из этого вышло

Kotlin Object Multiplatform Mapper

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.4K

Складывается такое впечатление, что дописать свою приложение для Android мне суждено не скоро. Каждый раз начиная писать новую версию (так как старая была написана не до конца, использовалась только мной, а через пару-тройку лет простоя - проще написать заново) своего приложения задуманного еще в 2012 году, я сталкиваюсь с ситуацией, что мне не хватает какого-то функционала и начинаю писать свои библиотеки для этого. В первую попытку это был свой ORM (UcaOrm 1, 2, 3). Во вторую KCron - KMP библиотека, реализующая Cron. И вот, начав следующую итерацию, я вновь в таком же положении. Но обо всем по порядку!

Читать далее

Синхронизация в Ktor для самых маленьких

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели3.8K

Это был теплый осенний вечер, когда передо мной встала задача "настроить серверное кэширование в сервисе". Казалось бы чего может быть проще, наверняка в Ktor это делается парой строчек кода. Однако реальность оказалась не такой радужной: Ktor предлагает только Cache Headers plugin который, например, не поддерживает распределенное кэширование. Что ж, вооружившись IDE, я начал ваять свой велосипед - Ktor Simple Cache.

Что из этого вышло...

Спортивная сумка для гика

Время на прочтение3 мин
Охват и читатели7.8K
logoКогда моя спортивная сумка, представляющая из себя китайский noname окончательно пришла в негодность, передо мной встала задача покупки новой. В качестве одного из основных критериев отбора, была возможность носить в сумке не только спортивную форму, но и как минимум планшет, а еще лучше ультрабук. На Geektimes есть пара статей о выборе рюкзака для гика (1 и 2). И одна нашлась даже на Habrahabr. Но мне нужна была именно спортивная сумка, а посему открыв великий и ужасный я приступил к поискам.
Читать дальше →

По мановению руки

Время на прочтение4 мин
Охват и читатели8.7K

Немного предыстории


Как-то солнечным пятничным июньским утром, закончив все текущие дела, я откинулся на спинку кресла и погрузился в дебри интернета. В какой-то момент мне на глаза попалась статья FilegiverCom о Myo. До этого я уже слышал об этой штуке, но в тот момент как-то не предал этому значения, а тут она меня заинтересовала. Причем не только меня! После ознакомления со статьей и моих коллег тоже, у нас развернулась бурная дискуссия, как данный девайс можно использовать в повседневной жизни. Не придя к какому-то согласию, мы решили, что надо бы пощупать его воочию, и я оформил заказ.
До октября никаких изменений, кроме как получение на почту рассылки с последними новостями компании, не было. И вот 24 октября (почти ровно через четыре месяца) я получил от банка смс о списании средств, после чего моё ожидание затянулось.
Я проверял почтовый ящик каждый день, но заветного квитка в нем так и не было. В начале декабря, написав в поддержку с вопросом: «А где собственно?» — получил ответ, что девайс выслан, трекер мы вам дать не можем, но обычно за шесть недель доходит. И я стал ждать дальше.
И вот, возвращаясь домой 18 числа, я уже даже почти ни на что не надеясь, заглянул в ящик и обнаружил там извещение. Радости моей не было предела, однако до почты я мог добраться только в субботу. В пятницу же я объявил новость коллегам и, какого же было мое удивление, когда один из них показал мне эту статью.
В любом случае, в субботу я добрался до почты, забрал устройство и, повозившись с ним какое-то время, решил поведать вам о впечатлениях.
Читать дальше →

Пишем свой Orm под Android с канастой и сеньоритами, Часть 3-я

Время на прочтение5 мин
Охват и читатели5.7K

Вступление


После некоторого перерыва в разработке моего приложения под Android, в течение которого в моей голове формировались все новые и новые идеи, как сделать его красивее и удобнее, в конце января я вновь уселся за разработку. За время размышлений подход к созданию приложения немного трансформировался, и посему до объектной модели я добрался только тройку недель назад. И почти сразу столкнулся с необходимостью доработки UCAOrm. Кому интересно узнать не только об уже внедренных нововведениях, но и о том, что еще только в процессе разработки —
добро пожаловать!

Создание удобного OpenFileDialog для Android

Время на прочтение12 мин
Охват и читатели40K
Наверное, как и многие разработчики под Android, столкнулся на днях с необходимостью реализовать в своем приложении выбор файла пользователем. Так как изначально в Android такого функционала нет, обратился к великому и ужасному. Это показалось мне странным, но из вороха вопросов на stackoverflow и небольшого числа отечественных форумов можно выделить всего три основных источника:
  1. Android File Dialog – почти все ссылки из stackoverflow ведут сюда. В принципе, неплохое решение, но реализовано через отдельную activity, а хотелось чего-то в духе OpenFileDialog’а из .Net.
  2. В данной статье речь идет вообще об отдельном файл-менеджере, и почерпнуть какие-то идеи из неё не удалось.
  3. Идея же отсюда очень понравилась, однако, как мне показалось реализовать все это можно несколько красивее.

В результате, начав реализовывать своё решение, я столкнулся с некоторыми трудностями решать которые показалось очень интересно. А посему, решил описать в данной статье не просто готовое решение, а все шаги, которые к нему привели. Желающие пройти их вместе –
добро пожаловать!

Пишем свой Orm под Android с канастой и сеньоритами, Часть 2-ая

Время на прочтение5 мин
Охват и читатели5.7K

Вступление


Некоторый интерес сообщества к моей первой статье, заставил меня усиленно поработать над orm. Мне еще не все в нем нравится (где-то код не оптимизирован; где-то реализация не такая, как я хотел; не хватает проверок и возможно стабильности), но он выполняет все необходимые в текущей момент мне функции. И так, встречайте: UcaOrm!

Читать дальше →

Пишем свой Orm под Android с канастой и сеньоритами

Время на прочтение5 мин
Охват и читатели10K

Вступление


Идея написать свое приложение под Android пришла мне на пятый день отдыха в солнечном Таиланде. Не буду вдаваться в подробности что именно натолкнуло меня на неё, как и что я задумал за приложение (просто статья не об этом). Однако идея крепко укоренилась и на шестой день пребывания, воспользовавшись бесплатным интернетом в отеле, на ноутбук, взятый только ради просмотра фильмов и скидывания фотографий с фотоаппарата, я закачал MySql.
Начал я, как вы наверное уже догадались, с реляционный модели.
Работа шла трудно, но через пару месяцев с моделью я закончил и окунулся в дебри разработки под Android. До этого, под мобильные платформы я писал только на .Net Compact Framework, но так как с Java был знаком не понаслышке, накидать простенькую форму с кнопками труда не составило. Объектная модель, ожидаемо, трудностей не вызвала вообще и я, радостно предвкушая как сейчас мои тестовые данные улетят куда-то в недра устройства, открыл раздел Data Storage на сайте Android Developers. Раздел Using Databases нельзя назвать исчерпывающим, однако все необходимы ссылки на API он содержит, и я принялся писать своего наследника от SQLiteOpenHelper. После пары удачных проб, разбалованный Entity Framework’ом, я понял, что и тут бы было неплохо использовать какой-нибудь orm, так как сущностей у меня набралось больше десятка. Вбив в Великом и Ужасном «android orm», первую же ссылку я получил на эту статью, и несколько полезных на StackOverflow. Набрав в общей сложности три orm’а, я приступил к экспериментам.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Praha, Hlavni Mesto Praha, Чехия
Дата рождения
Зарегистрирован
Активность

Специализация

Технический директор, Архитектор программного обеспечения
Ведущий
От 10 000 €
Git
Docker
Bash
CI/CD
Высоконагруженные системы
C#
Kotlin Multiplatform
Windows Azure
AWS