Pull to refresh
0
0
Сергей Сидоренко @elbik

User

Send message

Боль и анимация таблиц для iOS. Фреймворк Awesome Table Animation Calculator

Reading time10 min
Views12K

Представим себе экран обычного мобильного приложения с уже заполненным списком ячеек. С сервера приходит другой список. Нужно посчитать разницу между ними (что добавилось/удалилось) и проанимировать UICollectionView.


«Простой» подход — полностью заменить модель с последующим вызовом reloadData. К сожалению, при этом теряются анимации и могут возникать другие нежелательные эффекты и тормоза. Куда интереснее редактировать списки аккуратно, анимированно. Попробовав это сделать несколько раз, я убедился, что это неимоверно трудно.


Раз проблема встретилась в нескольких проектах, нужно её обобщить и работать дальше с обобщённой реализацией. Интересная задача! Несколько дней борьбы с документацией, здравым смыслом, багами реализации таблиц в iOS, и получился код с достаточно простым интерфейсом, адаптирующийся к широкому кругу задач, про который я хочу рассказать.

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

1 разработчик. 2 приложения. 3 года

Reading time15 min
Views28K
Всем здравствуйте! Давно уже собирался написать историю своего проекта на Хабр, более того, даже обещал. И тем не менее, этот момент откладывался на потом: когда выйдет новый релиз, когда закончится обновление дизайна, когда все заработает, как задумано. Причина одна – лень, прикрывающаяся отсутствием времени.

image

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

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

Локализация Android приложения средствами Google Sheets

Reading time2 min
Views9.8K
Прочитал публикацию «Локализация Android приложения средствами Google Sheets» и удивился. Над проектом работает целая команда (переводчик, разработчик, автор), но одну из первоочередных задач — перевод продукта — решает неудобно.

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


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

Делаем UI плагина в IntelliJ Idea «как у maven'a»

Reading time5 min
Views8.3K

Предыстория


Встала задача создать для разработчиков и QA удобный способ стартовать порядка 20 серверных приложений, живущих в общем репозитрии (Spring с XML конфигурацией и общим для все частей приложения бутстрап классом).


Как сделать нечто удобное человеку, который последний раз GUI рисовал в Borland Delphi 6.0? Взять что-то уже готовое и приспособить для своих нужд, ну и раз уж будущие пользователи работают в IntelliJ Idea, появилась мысль соорудить плагин, который будет выглядеть и вести себя так, как это делает Maven Integration Plugin.


image


Под катом классы и некоторые утилитарные методы, которые помогут это сделать.

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

Unity и MVC: как прокачать разработку игры

Reading time13 min
Views84K
От переводчика
Привет, Хабр!

Я ненастоящий сварщик и перевод статьи дался мне тяжело, поэтому я назову его вольным — заранее очищу совесть, если где-то слишком сильно перефразировал оригинал. Буду рад указаниям на ошибки перевода, грамматики и т.п. в личку.

Перевод публикую с разрешения сайта Toptal, где выложен оригинал автора Eduardo Dias da Costa.

Обычно программисты знакомятся с профессией, начиная с Hello World. Затем ставят всё большие и большие цели и каждая новая задача приводит к важному уроку: чем больше проект, тем запутаннее код.


image

И в больших, и в маленьких командах никто не кодит так, как ему вздумается. Код должен быть поддерживаемым и расширяемым. Ведь компания, в которой ты работал, не обращается к тебе всякий раз, когда потребуется исправить баг или улучшить код. Да и ты вряд ли этого хочешь.


Поэтому существуют шаблоны проектирования; они — сборники правил для стандартизированного структурирования проекта, которые помогают разделить и организовать большую кодовую базу, и упростить работу с незнакомым кодом.

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

Rust и Swift (третья, четвёртая, пятая и шестая части)

Reading time9 min
Views8.8K

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

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

Архитектурные паттерны в iOS

Reading time14 min
Views207K

Введение в MVP, MVC, MVVM и VIPER. Что между ними общего и в чем разница.



Делаете все по MVC, а получается некрасиво? Сомневаетесь, переходить ли на MVVM? Слышали о VIPER, но не уверены, стоит ли оно того?

В этой статье я кратко рассмотрю некоторые популярные архитектурные паттерны в среде iOS и сравню их в теории и на практике. Больше информации вы найдете при переходе по ссылкам, указанным в тексте.
Читать дальше →

15 шагов по улучшению юзабилити

Reading time11 min
Views29K


Встречают по одёжке, провожают по уму. Эта старинная поговорка говорит, помимо прочего, о важности первого впечатления. Это верно не только для людей, но и для программных продуктов — веб-сайтов и мобильных приложений. Одним из важнейших моментов формирования привлекательности сетевого проекта является удобство его использования — юзабилити. И когда человек впервые знакомится с каким-то сайтом или приложением, то первые впечатления зачастую определяют, будет ли он возвращаться к этому продукту снова и снова. Иными словами, юзабилити — одно из ключевых свойств сайта, формирующих (или разрушающих) аудиторию. Давайте рассмотрим некоторые распространённые и часто упускаемые из виду сценарии поведения пользователей, а также способы улучшения юзабилити на наиболее важных стадиях взаимодействия с вашим веб-сайтом или мобильным приложением.
Читать дальше →

5 советов от экспертов, как построить карьеру в ИТ

Reading time3 min
Views49K
image

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

Ниже я подобрала пять докладов, которые отвечают на вопросы, как проходить собеседования, какие способности нужно развить, чтобы стать успешнее в сфере ИТ, и что делать, чтобы карьера пошла в гору. Осторожно, здесь говорят про бизнес!

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

Casual-заготовки под Swift

Reading time6 min
Views12K
image

Привет, братья во swift-e. Пришлось и мне освоить сей птичий язык, и нет лучшего способа для обучения, чем сделать программный продукт, работающий на потрепанном iPhone. Меня давно кусала изнутри сложная математическая головоломка, а тут раз! И вдруг свифт. Представленный код местами выглядит смешно, но понятно. Сам алгоритм игры я обсуждать не буду, он слишком сложен для местных модераторов, не умеющих в уме разделить 111 на 3. А вот примеры полезных функций для разработчиков casual game — пожалуйста, обсудим.
Читать дальше →

Rust и Swift (вступление, первая и вторая части)

Reading time7 min
Views13K
От переводчика: решил взяться за перевод цикла, в котором автор параллельно изучает Rust и Swift и сравнивает их между собой. Старался сохранить стиль и манеру письма оригинала, хотя местами и позволял себе сократить текст (надеюсь) без потери смысла.
Автор вначале кажется слишком предвзятым в сторону Rust, но потом его суждения становятся более взвешенными. Правда, сам я со Swift очень поверхностно знаком, а в Rust, хотелось бы думать, кое-что понимаю, так что тоже не являюсь беспристрастным в этом вопросе. Сравнение становится более интересным, начиная с четвёртой части, но, как говорится, из песни слова не выкинешь.


Rust и Swift

Сравнивая два увлекательных, новых и, очевидно, (хотя и не всегда) похожих языка программирования.

Предыстория

Летом 2015 года я начал изучать Rust. Затем, в сентябре 2015, я взялся за Swift. На первый взгляд, сходство между двумя языками очевидно, и они достигли стабильной версии примерно в одно время: релиз Rust 1.0 состоялся в мае 2015, а релиз Swift 2.0 (который фактически похож на 1.0, поскольку 1.0 служил публичной бетой) — в июне 2015. Оба вдохновлялись такими языками, как Haskell, в то же время сохраняя С-подобный (на самом деле, конечно, ALGOL-подобный) синтаксис, более привычный многим разработчикам, на которых ориентированы эти языки.

Так что, когда я начал книгу про Swift, я не мог удержаться от сравнения. Хотя оба языка кажутся очень похожими, они также очень сильно различаются с точки зрения дизайна языка и стоящей за этим философии — и эти отличия очень интересны!
Читать дальше →

Сортировка очереди без использования дополнительных ресурсов

Reading time3 min
Views17K
Недавно столкнулся с такой задачей: «Объединить две очереди таким образом, чтобы суммарная очередь была отсортирована». Причём требование для сортировки такое: не использовать никаких промежуточных объектов, кроме одной переменной, каким бы медленным алгоритм ни был. Первые попытки составить алгоритм сортировки очереди приводили к вопросу о том, как выйти из бесконечного цикла, но в конечном итоге я получил необходимый алгоритм, о котором и пойдёт речь.
Читать дальше →

Как добиться успеха на Kickstarter, если ты инди (часть 1)

Reading time9 min
Views27K

Подробный анализ успешной кампании Exoplanet: First Contact на Kickstarter


Предисловие




За последние годы краудфандинговые платформы стали хорошим подспорьем для молодых разработчиков, имеющих амбициозные задумки и ограниченные ресурсы для их реализации. Однако не стоит думать, что это простой способ решения финансовых проблем для вашего проекта. Совсем наоборот. Но ведь путь к успеху и должен лежать через препятствия, не так ли?

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

Мы надеемся, что подробный анализ кампании Exoplanet: First Contact позволит талантливым разработчикам вынести необходимые уроки и избежать множества ошибок на пути к успеху.
Читать дальше →

Обзор книг по дизайну

Reading time8 min
Views21K
Всем привет! У нас вышли новые книги по дизайну

image
Дизайн. Книга для недизайнеров. 4-е изд.
Автор: Робин Уильямс

Дизайнеры и недизайнеры всего мира уже два десятилетия используют в своих работах фундаментальные принципы, изложенные Робин Уильямс. Познакомьтесь с полностью обновленным полноцветным четвертым изданием «Дизайн. Книга для недизайнеров». В этой книге вы найдете: четыре секрета, которые пригодятся в любом дизайнерском проекте; принципы работы с цветом; стили дизайна; оттачивание дизайна с помощью шрифтов; варианты дизайна для брошюр, листовок, писем, рекламы.

Мысли о дизайне
Автор(ы): П. Рэнд

Эссе Пола Рэнда по дизайну — старейшее и самое известное в мире. Впервые книга увидела свет еще в 1970-х, а основные идеи, изложенные в ней автором, абсолютно актуальны и сегодня! Поэтому, переизданная снова в 2014 году, она тут же стала мировым бестселлером. Этот классический труд будет интересен и полезен как студентам художественных факультетов, так и профессиональным дизайнерам.
Читать дальше →

«Любимый смартфон химика-технолога» или унификация рабочего стола вашего гаджета

Reading time6 min
Views16K


В очередной раз привет, Хабр. Сегодня я хочу накинуть на себя белый халат, нацепить элегантное пенсне и выступить в роли инженера-экспериментатора, который будет смешивать необычные компоненты, дабы создать новый “соус”, под которым можно подать Вам старое любимое блюдо — ваш смартфон.

На самом деле, изначально я планировал описать нестандартный подход к реализации интерфейса одного, не вышедшего за рамки концепта, проекта. Однако, в итоге вышло так, что я замахнулся на великое, константное и незыблемое — концепцию рабочего стола в мобильных устройствах.
Читать дальше →

Зачем программисту знать алгоритмы

Reading time7 min
Views100K
Часто появляются статьи вида «нужны ли программисту алгоритмы», и все они имеют примерно одинаковый шаблон. Автор статьи как правило пишет: «Я N лет пишу сайты/скрипты в 1С, и никогда не пользовался алгоритмами или структурами данных. Тут же приводятся в пример красно-чёрные деревья или какие-нибудь другие экзотические структуры, которые в области, в которой работает автор не часто увидишь, если увидишь вообще. Такие статьи сводятся к тому, что в конкретной области программисты не используют сложные структуры данных и не решают NP задач.
Читать дальше →

Свежак для iOS-разработчиков — Digest MBLTdev

Reading time4 min
Views6.8K
Анонс мероприятия Apple, 3D графика без OpenGL, как использовать UILayoutGuide из кода и война с AdBlock — об этом и не только рассказывает подборка свежих статей в 57 выпуске Digest MBLTdev.

Продолжаем публиковать Digest MBLTdev — полезные материалы для iOS-разработчиков за неделю собранные с просторов мирового интернета. Новости, коды, инструменты, дизайн и прочее.

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

Книга «Алгоритмы: разработка и применение. Классика Computer Science»

Reading time11 min
Views42K
Привет, Хаброжители! У нас вышла новинка:

image Впервые на русском языке выходит одна из самых авторитетных книг по разработке и использованию алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных.

Вы познакомитесь с базовыми аспектами построения алгоритмов, основными понятиями и определениями, структурами данных, затем перейдете к основным методам построения алгоритмов, неразрешимости и методам решения неразрешимых задач, и, наконец, изучите рандомизацию при проектировании алгоритмов. Самые сложные темы объясняются на четких и простых примерах, поэтому книга может использоваться как для самостоятельного изучения студентами, так и учеными-исследователями или профессионалами в области компьютерных технологий, которые хотят получить представление о применении тех или иных методов проектирования алгоритмов.

Алгоритмический анализ состоит из двух фундаментальных компонентов: выделения математи-чески чистого ядра задачи и выявления методов проектирования подходящего алгоритма на осно-вании структуры задачи. И чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира.
Читать дальше →

Пример разработки игры на основе данных Google Analytics

Reading time4 min
Views24K
Несколько месяцев назад разработчик Тобиас Семински и его друг провели что-то наподобие геймдев-эксперимента. Они решили создать низкопробную игру и постоянно обновлять и улучшать ее, используя данные Google Analytics и пользовательские отзывы. Они не хотели тратить полгода на разработку ничем не примечательной игры, которая со временем затерялась бы на Google Play. Да и вообще, на это не было столько времени. Поэтому это казалось просто бредовой идеей – развивать игру, отталкиваясь лишь от отзывов игроков. Хотите узнать, что из этого вышло? Подробнее — в нашем переводе.


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

Работа мечты или небольшая история мобильной разработки

Reading time15 min
Views46K

Глава 1. В поисках сокровищ


Иногда процесс разработки мобильной игры, можно сравнить с поиском сокровищ. Вы тяжело трудитесь, день за днем, месяц за месяцем, строите планы и на них базируются ваши ожидания. Мечтаете. Конечно. Вы много мечтаете, что однажды наступит тот самый день, когда ваши поиски закончатся и все ваши мечты сбудутся. Это могут быть деньги, слава или уважение от миллионов. Но мечты для романтиков, а в реальной жизни все продолжается. Поиски. Разработка.

Но, что будет, если вы делаете игру о поиске тех самых сокровищ? На это у нас пока еще нет ответа, но мы, хотябы попытались. Мы кое-что нашли. А сокровище это или нет, вопрос к тебе, дорогой читатель.

image

Если вы читаете эту статью, значит мы выжили после разработки третьей по счету мобильной игры и выпустили её в свет. За время разработки, я много раз открывал заветную иконку хабры, дабы увидеть очередной рассказ от разработчиков, которые делятся своим опытом и впечатлениями. К сожалению, многие разработчики упускают много тонкостей и нюансов, особенно, если это касается бюджета и продвижения их игры, а зря.
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity