Pull to refresh
0
0
Send message

Разбираем ошибки начинающих iOS-разработчиков

Level of difficultyMedium
Reading time19 min
Views12K

Привет! Я Александра Башкирова, iOS-инженер в Clover и старший код-ревьюер на курсе «iOS-разработчик» в Яндекс Практикуме. На момент подготовки этой статьи мы уже проверили более тысячи работ студентов и успели заметить повторяющиеся ошибки.

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

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments6

Swift 5.7: Regex. Shorthands for optional unwrapping. Unlock existentials for all protocols

Level of difficultyMedium
Reading time3 min
Views1.1K

Swift 5.7: Regex. Shorthands for optional unwrapping. Unlock existentials for all protocols.

Shorthands for optional unwrapping. Improved type inference for complex closures. Better string parsing with Swift Regex. Creating a Regex with Regex literal. Creating a Regex using RegexBuilder. Unlock existentials for all protocols.

Read more
Rating0
Comments0

Live coding интервью для iOS разработчиков

Level of difficultyMedium
Reading time12 min
Views10K

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

Какие проблемы должен уметь решать каждый iOS разработчик? Как оценить широту и глубину знаний кандидата?

Статья может быть полезна как кандидатам на роль iOS разработчика, так и специалистам ответственным за найм в вашей компании. Давайте глубже рассмотрим один из этапов технического собеседования — live coding интервью.

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments3

Книга «Head First. Изучаем Swift»

Reading time4 min
Views3.8K
image Добрый день, Хаброжители!

Swift известен как язык разработки приложений, выбранный компанией Apple для iOS, iPadOS, macOS, watchOS и tvOS. Но этим его применение не ограничивается. Swift с открытым кодом набирает популярность как язык системного программирования и программирования на стороне сервера, его используют и в Linux, и в Windows. С чего же начать?

«Head First. Изучаем Swift» охватывает все актуальные темы – от сбора и управления данными до повторного использования кода, построения нестандартных типов данных и структурирования программ и пользовательских интерфейсов в SwiftUI. Изучив Swift, вы будете готовы строить любые приложения – от мобильных и веб-приложений до игр, фреймворков, средств командной строки и многого другого.
Читать дальше →
Total votes 8: ↑7 and ↓1+10
Comments1

Современный SwiftUI: общение родителей и детей

Reading time9 min
Views1.2K

Преамбула

Этот пост в блоге является одним из серии. Обязательно прочитайте все части!

Modern SwiftUI: Parent-child communication

Modern SwiftUI: Identified arrays

Modern SwiftUI: State-driven navigation

Modern SwiftUI: Dependencies

Modern SwiftUI: Testing

На прошлой неделе мы завершили нашу амбициозную серию из 7 статей, посвященных современным передовым методам разработки SwiftUI. В этих эпизодах мы перестроили приложение компании Apple “Scrumdinger” с нуля (исходный код здесь), которое является отличной демонстрацией многих проблем, с которыми можно столкнуться в реальном приложении. На каждом этапе пути мы ставили перед собой задачу написать код максимально масштабируемым и ориентированным на будущее, в том числе:

Читать далее
Total votes 3: ↑1 and ↓2-1
Comments1

Разработка iOS Framework в унисон с помощью Swift и Objective-C

Reading time11 min
Views1.6K

Прошло много времени с тех пор, как язык программирования Swift был представлен на WWDC в 2014 году. С тех пор внедрение Swift сторонними разработчиками, безусловно, было массовым. Тем не менее, Objective-C всё ещё существует.

В этом посте мы предоставим несколько советов и приёмов для успешной разработки XCFrameworks (новые способы упаковки и поставки библиотек в различных вариантах). XCFrameworks сочетают Swift и Objective-C таким образом, чтобы совместимость языков не ставила под угрозу публичные API-интерфейсы фреймворка и не влияла на них.

Читать далее
Rating0
Comments0

Настройте 3D-шахматную доску с помощью SwiftUI и RealityKit

Reading time6 min
Views1.1K

Использование фреймворков SwiftUI, RealityKit, ARKit и Multipeer

Я провел большую часть этого года (2022), изучая SceneKit. Путешествие, которое я задокументировал почти двумя дюжинами статей на эту тему, вы найдёте здесь, на Medium. Изучив большинство элементов в SceneKit, я решил перейти на RealityKit/ARKit в 2023 году.

Я не был уверен, с чего начать, поэтому я смотрел последние презентации WWDC2022 на ARKit, а затем на RealityKit, ну и — это не помогло. Я посмотрел, что было вначале, а затем самый ранний WWDC.

Читать далее
Rating0
Comments0

Минимизируем человеческий фактор в Swift

Reading time13 min
Views3.5K

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

Читать далее
Total votes 9: ↑8 and ↓1+10
Comments0

Произвольные красивые цвета: RGB, HSL, LCH и вот это вот всё

Reading time6 min
Views4.1K

RGB какой-то отстой.

Модель RGB, мало чем отличающаяся от ASCII, адресов памяти и наличия 86 400 секунд в сутках, является одной из тех инструментов, которые немного упрощают программирование, до поры до времени.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments17

Что лучше: UIKit или SwiftUI?

Reading time3 min
Views10K

Hello, World! Меня зовут Денис. Я IOS разработчик, пишу приложения для App Store. Хочу поделиться своим небольшим опытом на UIKit и SwiftUI.

Первый запуск

На WWDC19 Apple предоставила декларативный фреймворк SwiftUI. Новый фреймворк позволяет уменьшать время на написание UI-составляющей своих приложений.

Читать далее
Total votes 10: ↑1 and ↓9-8
Comments15

«Пап, ты уже старый для этого»: как я в 40 лет ушёл из редакторов во фронтенд-разработчики

Reading time8 min
Views57K
Привет, меня зовут Андрей Рябцев. В июле 2021 года я окончил курс «Веб-разработчик» в Яндекс.Практикуме и сменил профессию. Раньше я писал и редактировал тексты, а теперь занимаюсь фронтендом.

Мой случай едва ли тянет на историю успешного успеха, но если статья вдохновит хотя бы одного читателя, не зря я трачу на неё этот вечер. Меня бы год назад точно вдохновила.



Что было до


Сначала хотел использовать в заголовке слово «гуманитарий» — его часто гуглят вместе с фразой «стать программистом», но я не люблю это слово. От него веет безысходностью. Оно как клеймо: «Ты же гуманитарий, куда тебе…»

Много лет — 17, если быть точным, — я проработал в медиа. Писал свои и редактировал чужие тексты, руководил бригадами выпуска в газете и онлайн-издании. В какие-то периоды много ездил по России и за её пределы. Было интересно. А на вопрос друзей, счастлив ли я, отвечал «да», почти не раздумывая. Но со временем отрасль, как выражаются в Министерстве иностранных дел, «заметно деградировала», а перспективы в ней оставаться стали «смехотворны».
Читать дальше →
Total votes 98: ↑91 and ↓7+106
Comments160

Apple TV 1st generation. Вторая жизнь 15 лет спустя

Reading time14 min
Views19K

В моем распоряжении оказалось достаточно раритетное устройство родом из Купертино. Этот представитель технологической истории не имел широкого распространения и популярности на наших просторах в те годы, оттого желание прикоснуться к нему было еще больше. Немного поностальгируем, рассмотрим, чем являлось Apple TV в 2007 и попробуем найти применение в 2021 году.

Читать дальше →
Total votes 23: ↑22 and ↓1+25
Comments16

Подходы к спискам на UICollectionView

Reading time14 min
Views7.6K

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

Копились бесчисленные баги и знания об устройстве этого инструмента и о лучших практиках. И когда мы получили очередной infinite scroll дизайн, мы поняли: пришло время задуматься и дать отпор тирании UITableViewDataSource и UITableViewDelegate.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments3

SwiftUI 2020. Что изменилось?

Reading time5 min
Views11K
Приветствую вас, жители Хабра и все интересующиеся разработкой под IOS. На связи Анна Жаркова, Senior iOS/Android разработчик компании Usetech
Сегодня мы поговорим о тех изменениях и новшествах, которые нам представляет Apple на WWDC 2020. А именно про доработанную и даже переработанную версию фреймворка SwiftUI.

Эта технология для декларативной разработки приложений была представлен в прошлом году на WWDC 2019. Если вы с ней еще не работали, то рекомендую заглянуть сюда

Итак. Apple и их инженеры внимательно весь этот год следили за обзорами, статьями, решениями и комментариями от разработчиков-энтузиастов. В конце видео «What's new in SwiftUI» они выражают благодарность всем неравнодушным за помощь.

Теперь SwiftUI позиционируется как полноценный инструмент для разработки под разные платформы (от watchOS до macOS):


Читать дальше →
Total votes 13: ↑12 and ↓1+17
Comments11

SwiftUI по полочкам

Reading time24 min
Views88K
Каждый раз, когда в языке программирования появляется новый Фреймворк, рано или поздно, появляются люди, которые изучают язык именно с него. Вероятно так было и в IOS разработке во времена появления Swift: поначалу он рассматривался как дополнение к Objective-C — но я этого уже не застал. Сейчас, если начинаешь с нуля, выбор языка уже не стоит. Swift вне конкуренции.

То же самое, но в меньшем масштабе, происходит и с фреймворками. Появление SwiftUI — не исключение. Вероятно, я — представитель первого поколения разработчиков, кто стартовал с изучения SwiftUI, проигнорировав UIKit. У этого есть своя цена — обучающих материалов и примеров работающего кода пока очень мало. Да, в сети уже есть некоторое количество статей, рассказывающих о той или иной особенности, том или ином инструменте. На том же www.hackingwithswift.com уже довольно много примеров кода с объяснениями. Однако, они слабо помогают тем, кто решил изучать SwiftUI с нуля, как я. Большинство материалов в сети — это ответы на конкретные, сформулированные вопросы. Опытный разработчик легко разберется, как все устроено, почему именно так, и зачем это нужно применять. Новичку же, сначала нужно понять, какой вопрос задать, и только тогда он сможет добраться до этих статей.



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

Надеюсь статья поможет вам сэкономить некоторое время, когда вы тоже захотите ощутить немного магии.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments30

Самый беззащитный — уже не Сапсан. Всё оказалось куда хуже…

Reading time8 min
Views545K
{UPD 10.02.2021} Евгений Чаркин дал интервью на эту тему gudok.ru/newspaper/?ID=1552569
Под катом мои комментарии на некоторые тезисы.
{/UPD}

Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост «Самый беззащитный — это Сапсан» в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

В ОАО «РЖД» прокомментировали результаты этого расследования. «Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого… Ну, он из „фана“. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал „Сапсанов“ функционирует как положено и не нуждается в доработке», — заявил Евгений Чаркин.

То есть вместо того, чтобы выразить благодарность за обнаруженную уязвимость, автора обозвали «злоумышленником» и «Юным натуралистом».

К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
Также оттуда в сеть РЖД есть впн. Если захотите — найдёте её там сами.

И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.



Видимо, только этот котэ добросовестно охраняет вокзал.

Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО «РЖД» Чаркин Евгений Игоревич и возможные последствия — под катом.
Читать дальше →
Total votes 1135: ↑1132 and ↓3+1447
Comments990

7 основных ошибок безопасности при переходе на облачные приложения

Reading time5 min
Views6.4K
image

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

Вступление


В связи с пандемией многие предприятия перешли на использование большего количества облачных приложений по необходимости потому, что всё больше из нас работают удаленно. В опросе 200 ИТ-менеджеров, проведенном Menlo Security, 40% респондентов заявили, что они сталкиваются с растущими угрозами со стороны облачных приложений и атак Интернета вещей (IoT) из-за этой тенденции.
Читать дальше →
Total votes 16: ↑12 and ↓4+13
Comments6

Гайд по тестированию локализации и интернационализации, а также большой и полезный checklist

Reading time23 min
Views50K

Привет, хабровчане. Сегодня я хочу осветить и обсудить тему локализации (L10N) и интернационализации (I18N). В интернете и, в том числе и на Хабре уже есть полезные и интересные статьи, но часто они дают более-менее общую информацию о подходах, без углубленной информации о том, что и как можно проверить. Я бы хотел с вами поделиться своим опытом, просуммировать кое что из статей, которые вы можете найти в интернете, а также постараюсь описать большой checklist с самыми распространёнными кейсами как для локализации, так и для интернационализации. В чеклистах я буду стараться упоминать только те проверки, которые вы можете сделать сами, без (глубоких) знаний языка новой для вас локали.


image

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments6
1

Information

Rating
Does not participate
Registered
Activity