Как стать автором
Обновить
1
0
Дмитрий @LLIo6oH

Пользователь

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

UICollectionViewLayout для пиццы из разных половинок

Время на прочтение15 мин
Количество просмотров18K

Чтобы сделать пиццу из половинок мы использовали два UICollectionViewLayout. Рассказываю о том, как мы написали такой лейаут для iOS, с чем столкнулись и от чего отказались.


Всего голосов 42: ↑37 и ↓5+32
Комментарии17

Swift: ARC и управление памятью

Время на прочтение13 мин
Количество просмотров52K
Будучи современным языком высокого уровня, Swift в основном берёт на себя управление памятью в ваших приложениях, занимаясь выделением и освобождением памяти. Это происходит благодаря механизму, который называется Automatic Reference Counting, или сокращенно ARC. В этом руководстве вы разберётесь, как работает ARC и как правильно управлять памятью в Swift. Понимая этот механизм, вы сможете влиять на время жизни объектов, размещенных в куче (heap).

В этом руководстве вы прокачаете свои знания Swift и ARC, изучив следующее:

  • как работает ARC
  • что такое циклы ссылок (reference cycles) и как их правильно устранять
  • как создать пример цикла ссылок
  • как находить циклы ссылок при помощи визуальных средств, предлагаемых Xcode
  • как обращаться с ссылочными типами и типами-значениями
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии18

Как правильно торговаться о зарплате в США. Этикет американских переговоров

Время на прочтение4 мин
Количество просмотров40K
Ничто так не повышает зарплату в оффере, как контроффер. И тут можно было бы закончить разговор, но не в США. Есть у вас контроффер или нет, в Америке очень важно соблюдать некоторый этикет переговоров о зарплате. Вряд ли разговор с вашим потенциальным работодателем пойдет дальше, если вы приедете и выложите свой оффер со словами «Сможете перекрыть?».
Как правильно по-американски вести переговоры и какие маленькие хитрости помогут добиться нужных цифр даже без контроффера, читайте дальше в статье.
Читать дальше →
Всего голосов 38: ↑33 и ↓5+28
Комментарии41

Как найти компанию спонсора визы в США. Tips and Tricks

Время на прочтение9 мин
Количество просмотров88K

image


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


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

Читать дальше →
Всего голосов 48: ↑39 и ↓9+30
Комментарии73

Таймер в iOS

Время на прочтение9 мин
Количество просмотров34K
Представьте, что вы работаете над приложением, в котором нужно периодически выполнять некоторые действия. Именно для этого в Swift используется класс Timer.

Timer используется для планирования действий в приложении. Это может быть разовое действие или повторяющаяся процедура.

В этом руководстве вы разберётесь, как в iOS работает таймер, как он может влиять на отзывчивость UI, как оптимизировать потребление батареи при использовании таймера и как использовать CADisplayLink для анимации.

В качестве тестового полигона мы будем использовать приложение — примитивный планировщик задач.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Создание карточек как Tinder на Swift

Время на прочтение10 мин
Количество просмотров5.6K
image

Tinder — мы все знаем, что это приложение для знакомств, где вы можете просто отклонить или принять кого-то свайпом вправо или влево. Эта идея считывания карт теперь используется в тоннах приложений. Этот способ отображения данных для вас, если вы устали от использования табличных и коллекционных представлений. Есть множество учебников по этому вопросу, но этот проект занял у меня немало времени.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

UICollectionView всему голова: Изменение представления на лету

Время на прочтение8 мин
Количество просмотров34K
Привет, Хабр! Представляю вашему вниманию перевод статьи "UICollectionView Tutorial: Changing presentation on the fly".

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

В результате мы получим такой пример:

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии2

Swift 5.0. Что нового?

Время на прочтение6 мин
Количество просмотров20K

Swift 5 — долгожданный релиз, включающий в себя несколько десятков улучшений и исправлений. Но самой главной целью релиза Swift 5.0 было достижение ABI стабильности. В этой статье вы узнаете, что такое ABI и что стабильный ABI даст iOS/macOS разработчикам. А также проведём разбор нескольких новых фич Swift 5.


Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии7

OBD2 reader — диагностика автомобиля

Время на прочтение6 мин
Количество просмотров65K
При создании приложения мы столкнулись с множеством выборов, проблем и так далее, с которыми попробуем ознакомить вас в этой статье. Как оказалось с автомобилем можно вести диалог, причем довольно таки продуктивный. Естественно для того чтобы организовать общение с автомобилем необходимо «установить контакт», «задать правильный вопрос» и правильно понять «ответ», полученный от автомобиля. Соответственно статья и будет нацелена на то, чтобы доступным языком объяснить организацию диалога, а также рассказать вам какие ошибки могут встретиться вам на пути и как с ними бороться.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии59

Как получить максимум от инвестиционного портфеля?

Время на прочтение4 мин
Количество просмотров16K
Дурак сказал: «Не клади все яйца в одну корзину!» - иными словами: распыляй свои интересы и деньги! А мудрец сказал: «Клади все яйца в одну корзину, но… береги корзину!». Эта фраза принадлежит Марку Твену, но ее «мудрую» часть вы наверняка слышали от  Уоррена Баффетта. Да, легендарный инвестор не является сторонником распределения активов и вкладывается исключительно в американские акции.

Оправдан ли такой подход и так ли полезна диверсификация портфеля, как о ней говорят? Давайте проверим. Для этого возьмем наиболее популярные для инвестирования биржевые ETF-фонды и посмотрим, насколько они эффективны при объединении в портфель. А заодно выясним, влияет ли число фондов в портфеле на его результативность.



Читать дальше →
Всего голосов 29: ↑19 и ↓10+9
Комментарии14

Сравнение архитектур Viper и MVVM: Как применить ту и другую

Время на прочтение15 мин
Количество просмотров24K


В настоящее время VIPER и MVVM являются наиболее популярными архитектурными решениями, применяемыми при разработке крупных приложений, требующих участия в разработке больших команд, являющихся хорошо тестируемыми, длительно проддерживаемыми и постоянно развивающимися. В данной статье мы попробуем применить их на небольшом тестовом проекте, который представляет из себя список контактов пользователей с возможностью добавления нового контакта. В данной статье больше практики, чем аналитики, и предназначена она в первую очередь для тех, кто уже в теории знаком с данными архитектурами и теперь хотел бы понять как это работает на конкретных примерах. Впрочем, базовое описание архитектур и их сравнение также присутствует.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии2

Статические Generic таблицы

Время на прочтение7 мин
Количество просмотров5.1K
image

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

О том, как я решаю данную проблему — под катом.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии10

Взлом Wi-Fi

Время на прочтение7 мин
Количество просмотров329K

Взлом маршрутизаторов WPA/WPA2 Wi-Fi с помощью Airodump-ng и Aircrack-ng/Hashcat


Это краткое пошаговое руководство, которое демонстрирует способ взлома сетей Wi-Fi, защищённых слабыми паролями. Оно не исчерпывающее, но этой информации должно хватить, чтобы вы протестировали свою собственную сетевую безопасность или взломали кого-нибудь поблизости. Изложенная ниже атака полностью пассивна (только прослушивание, ничего не транслируется с вашего компьютера) и о ней невозможно узнать, если вы только реально не воспользуетесь паролем, который взломали. Необязательную активную атаку с деаутентификацией можно применить для ускорения разведывательного процесса. Она описана в конце статьи.
Читать дальше →
Всего голосов 77: ↑64 и ↓13+51
Комментарии51

Мой опыт подготовки к трудоустройству в Google

Время на прочтение6 мин
Количество просмотров32K


От переводчика: сегодня публикуем для вас статью Праякты Татавадкар, она разработчик с небольшим стажем, но знания и опыт позволили ей получить работу в Google (со второй попытки), стать членом команды разработчиков YouTube.

Google была для меня компанией мечты с самого начала пути. Когда я успешно прошла собеседование, ко мне стали обращаться многие знакомые и друзья с просьбой поделиться опытом. Беседуя с ними, я определила самые важные для большинства вещи, которыми теперь делюсь в этой статье.
Всего голосов 34: ↑24 и ↓10+14
Комментарии23

Структуры данных для самых маленьких

Время на прочтение22 мин
Количество просмотров338K
James Kyle как-то раз взял и написал пост про структуры данных, добавив их реализацию на JavaScript. А я взял и перевёл.

Дисклеймер: в посте много ascii-графики. Не стоит его читать с мобильного устройства — вас разочарует форматирование текста.


Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии51

Когда размер имеет значение: создаем приложение-линейку с помощью ARKit

Время на прочтение5 мин
Количество просмотров7.6K


Вот и прошел день долгожданного официального релиза iOS 11, а значит откладывать знакомство с ARKit – SDK производства Apple для создания приложений с дополненной реальностью — больше никак нельзя. О сути инструмента наслышаны многие: с помощью ARKit можно накладывать созданную виртуальную реальность на реальный мир вокруг нас. iPhone или iPad при этом выступают в роли смотрового окна, через которое мы можем наблюдать за происходящим и что-то в нем менять. В Интернете уже представлено немало различных демо-приложений – с их помощью можно расставлять мебель, парковать автомобиль на стоянке, рисовать в окружающем пространстве, создавать двери в другие миры и многое другое. Словом, круг возможностей широкий, нужно только разобраться с технической реализацией.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии5

Enums + Associated Values = Swift

Время на прочтение5 мин
Количество просмотров33K

Swift — значит быстрый. Быстрый — значит понятный, простой. Но достичь простоты и понятности непросто: сейчас в Swift скорость компиляции так себе, да и некоторые моменты языка вызывают вопросы. Тем не менее возможность перечислений (enum'ов), про которую я расскажу (associated values — присоединяемые значения) — одна из самых крутых. Она позволяет сократить код, сделать его понятнее и надёжнее.



Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии17

Уменьшаем размер приложения: проверенные способы

Время на прочтение8 мин
Количество просмотров9.7K

Введение


Одним из немаловажных аспектов разработки мобильных приложений является оптимизация размера. Мы все по личному опыту знаем, что чем меньше весит приложение, тем охотнее его скачивают, особенно если под рукой нет точки доступа Wi-Fi, а скорость и/или трафик мобильного интернета оставляют желать лучшего. К тому же, нельзя забывать и о том, что некоторые маркеты ставят ограничение на размер выпускаемого приложения. Например, в App Store продукты размером до 100 МБ доступны для скачивания по мобильному интернету, если же вес приложения превышает этот порог, то скачать его можно только через Wi-Fi. На Play Market же приложение, которое вытягивает больше 100 МБ, нельзя загрузить в принципе. В данной статье мы опишем, к каким методам и хитростям прибегали наши разработчики нативных приложений на iOS для того, чтобы уменьшить вес продукта, и добавим к этому несколько дельных советов, найденных в сети.

Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии4

Инструменты для прототипирования на Mac: сопоставительная характеристика

Время на прочтение6 мин
Количество просмотров7.9K
С тем, что протипирование — обязательный этап работы над проектом, все уже смирились, благо рынок сейчас предлагает массу решений, помимо ручки и бумаги. Учитывая, что фунционал у большинства инструментов в общих чертах повторяется, выбирать «тот самый» — занятие неблагодарное. Тем не менее, задавшись целью подновить арсенал ПО для команды разработчиков, мы заставили себя через это пройти, и сегодня хотели бы предложить читателям мини-исследование с картинками, чтобы и они могли составить представление о некоторых популярных программах и сравнить результаты.


Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии5

Куда пойти, что читать, с кем общаться на профессиональные темы: дорожная карта для iOS-разработчика

Время на прочтение4 мин
Количество просмотров16K
В предыдущей статье я вскользь затрагивал тему развития мобильного разработчика. Когда вся твоя команда — это ты, это действительно острая тема. Некому помочь советом, поделиться интересной статьей или посоветовать годный видеокурс. Около года назад я решил бороться с этой проблемой и начал вести два Telegram-канала, в которых ежедневно публикую подборку самых актуальных материалов по iOS- и Android-разработке. За это время у меня накопилось множество отличных ресурсов, чатов, рассылок и событий, которыми стоит поделиться с сообществом. Начнем с iOS-разработки.


Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность