Pull to refresh
9
0
Денис @KamiSempai

Android/iOS Разработчик

Send message

Удобная локализация iOS приложений в Interface Builder

Reading time 4 min
Views 8K


Не так давно я опубликовал подробную инструкцию по использованию LocoLaser — утилиты для локализации Android и iOS приложений в Google Sheets. Мне бы хотелось продолжить тему локализации и обратить больше внимания на iOS приложения. В отличии от Android, в iOS разработке есть ряд мелких но неприятных моментов, которые, в сумме, могут привести к совсем не мелким проблемам.

Сегодня я хочу уделить особое внимание Interface Builder-у. Все мы знаем, он не идеален. Но это единственное, что у нас есть и с этим приходится мириться. В этой статье я расскажу о главной проблеме, с которой вы можете столкнуться при локализации приложений в Interface Builder, а также расскажу как с ней можно справиться.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 17

LocoLaser: переводим приложения в Google Sheets

Reading time 14 min
Views 6.4K


На практике часто приходится выпускать приложения сразу на Android и iOS, а иногда и на Windows Phone. В этом случае некоторые разработчики решают проблему локализации напролом, переводя каждую платформу по отдельности. Согласитесь, не самый лучший поход. На момент, когда я задался решением этой проблемы, в сети уже можно было найти утилиты по загрузке строковых ресурсов из Google Sheets, но большая их часть выглядела как минимум топорно. Меня такой расклад категорически не устраивал. В результате на свет появился LocоLaser — простая в использовании, но очень умная утилита на Java. На протяжении пары лет я использовал её исключительно в своих рабочих проектах. За это время она успела обрасти достаточно богатым функционалом, и теперь готова быть представленной на суд общественности.

В этой статье я расскажу о том что из себя представляет LocoLaser и как как интегрировать его в свой проект. Для начала разберем возможности утилиты, а затем перейдем к более конкретным вещам, таким как Gradle плагин для Android и Bash скрипты для iOS. Я достаточно ленивый программист, чтобы из раза в раз делать одни и те же действия, поэтому все сделано так, что после первоначальной настройки ваша дальнейшая работа будет сводиться лишь к запуску нужной задачи, когда это потребуется. Для переводчиков же, перевод выглядит совсем просто, мы расшариваем для них гугл таблицу со строками и они вписывают перевод в соответствующие колонки. Если нужно добавить язык, просто добавляется еще одна колонка с новым языком. Google Sheets позволяет индивидуально настроить доступ к редактированию таблицы, поэтому каждый переводчик имеет доступ только к колонкам со своими языками.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 0

Android Process: Я тебя породил, я тебя и …

Reading time 12 min
Views 39K


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

В этой статье я расскажу о некоторых ошибках, которые могут возникнуть в результате нарушения шестой заповеди (не убей) по отношению к процессу приложения, и о том как проверить на сколько качественно он возвращается с того света.
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 18

CIFS в Android, или как я файлы с разбитого телефона доставал

Reading time 9 min
Views 26K
Так получилось, что я разбил экран у своего любимого Nexus 4. Первой мыслью было «Чёрт! Теперь я буду как один из этих нищебродов, с разбитым экраном!». Но, видимо, создатели Nexus 4 были ярыми противниками нищебродства, так как вместе с разбитым экраном, полностью отказал сенсорный экран. В общем, ничего страшного, отнести телефон в ремонт и все. Однако, на телефоне были файлы, которые нужны были мне прямо сейчас, а не через пару недель. Но вот получить их представлялось возможным только при разблокированном экране, телефон требовал ввод “супер секретного” жеста и категорически не хотел работать как внешний накопитель.



Немного покопавшись с adb я плюнул на попытки разблокировать экран через консоль. Все советы по взлому экрана блокировки требовали наличие рута, а мой телефон не из этих. Решено было действовать изнутри. Выбор пал на библиотеку JCIFS, так как раньше мне уже приходилось работать с ней и проблем в её использовании не возникало.
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 27

Программное создание NinePatchDrawable

Reading time 9 min
Views 9.1K
В новом Android Lollipop появился такой интересный компонент как VectorDrawable. Если использовать его с умом, можно значительно снизить объем приложения, сэкономив на графических ресурсах, плюс, использование векторной графики освобождает нас от муторного процесса создания изображений под разные плотности экрана. Первая мысль, которая меня посетила, когда я увидел VectorDrawable, была: “Ух ты! А его можно тянуть как NinePatch?”. Оказалось нельзя. Тут можно было бы немного огорчиться и довольствоваться тем, что хотя бы иконки можно в векторе держать. Однако, я на этом решил не останавливаться. В итоге получилась универсальная утилита, которая из любого Drawable способна сделать NinePatchDrawable.



В изображении, которое вы видите, используется вектор, но он растянут по центру. И это удивительно! Возможность растягивать вектор только в определенных областях предоставляет, по истине, колоссальные возможности. А если учесть, что есть проекты позволяющий использовать вектор на более ранних версиях андроида, векторные изображения начинают показывать себя во всем своем великолепии.
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 2

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity