Все потоки
Поиск
Написать публикацию
Обновить
20.32

Swift *

Открытый объектно-ориентированный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Эффективное использование libdispatch

Время на прочтение8 мин
Количество просмотров2.5K
(Прим.перев.: автор оригинального материала — пользователь github и twitter Thomas @tclementdev. Ниже в переводе сохранено повествование от первого лица, которое использует автор.)

Думаю, что большинство разработчиков использует libdispatch неэффективно из-за того как её представили сообществу, а также из-за запутанной документации и API. Я пришел к этой мысли после чтения обсуждения «concurrency» в рассылке посвященной развитию Swift (swift-evolution). Особенно просвещают сообщения от Пьера Хабузит (Pierre Habouzit — занимается поддержкой libdispatch в Apple):
Читать дальше →

Как мы обошли Review Guidelines и запустили сервер на телефоне

Время на прочтение4 мин
Количество просмотров3.7K
Привет, Хабр. Меня зовут Антон Логинов, я iOS-разработчик в компании FINCH.

Недавно мы столкнулись с проблемой использования web-интерфейсов для азартных игр. В очередном обновлении AppStore Review Guidelines коллеги из Купертино опять ужесточили правила. Если конкретнее, то теперь Apple может зареджектить приложение, если какой-либо из web-интерфейсов будет классифицирован как азартная игра на реальные деньги.
Читать дальше →

Изменения модальной презентации экранов в iOS 13

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

Всем привет!


Меня зовут Илья, я из Tinkoff.ru. Я перевел для вас статью от Geoff Hackworth про то, как изменился стиль модальной презентации в iOS 13, на что это повлияло и как работает обратная совместимость с предыдущими версиями iOS и Xcode.


image

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

Баги при работе с системной клавиатурой

Время на прочтение12 мин
Количество просмотров7.9K
Взаимодействуя с приложением, мы в определенный момент активируем системную клавиатуру для набора сообщения или заполнения необходимых полей. Сталкивались ли вы с ситуациями, когда клавиатура отображается, а вот поля для ввода сообщения нет или наоборот — клавиатура есть, куда вводить текст, не видно? Баги могут быть связаны как с проблемами внутри конкретного приложения, так и с общими недостатками системной клавиатуры.

Константин Мордань, iOS-разработчик из Mail.ru в своей работе повидал всякое: проанализировав способы управления клавиатурой в iOS, он решил поделиться основными найденными багами и подходами, которые применял для их обнаружения и исправления.



Осторожно: под кат мы поместили много гифок, чтобы наглядно демонстрировать баги. А еще больше примеров вы найдете в видео доклада Константина на AppsConf.
Читать дальше →

Как проверить доступность вводного предложения в iOS

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

Если в вашем приложении с подписками вы используете вводные предложения (триал, оплата по мере использования или предоплата), то прежде чем показать цену на экране оплаты, вам нужно определить доступность вводного предложения для пользователя. Если пользователь до этого уже оформлял триал, то для него вы должны отображать полную цену.


image


Всем привет, на связи Ренат из Apphud – сервиса, который упрощает работу с подписками в iOS-приложениях. Сегодня я расскажу, как определить, есть ли у отдельно взятого пользователя право активировать вводное предложение или нет.

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

SwiftUI для прошлого конкурсного задания Telegram Charts (март 2019 года): все просто

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


Сразу начну с замечания о том, что приложение, о котором пойдет речь в этой статье, требует Xcode 11 и MacOS Catalina , если вы хотите использовать Live Previews, и Mojave, если будете пользоваться симулятором. Код приложения находится на Github.

В этом году на WWDC 2019, Apple анонсировала SwiftUI, новый декларативный способ построения пользовательского интерфейса (UI) на всех устройствах Apple. Это практически полное отступление от привычного нам UIKit, и я — как и многие другие разработчики — очень хотела посмотреть этот новый инструмент в действии.

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

Внедряем Sign in with Apple в свое iOS приложение

Время на прочтение2 мин
Количество просмотров12K
На WWDC 2019 Apple в очередной раз нарушила покой iOS разработчиков — представила новую систему авторизации пользователей Sign in with Apple. Теперь все iOS приложения, которые используют сторонние системы авторизации (Facebook, Twitter, etc.), должны в обязательном порядке реализовать Sign in with Apple, иначе выгонят из AppStore. Мы решили не испытывать судьбу и побежали внедрять эту фичу. Как именно мы это сделали — узнаете под катом.
Читать дальше →

Как мы переводили легаси проект на GraphQL

Время на прочтение5 мин
Количество просмотров4.2K
Привет, Хабр. Меня зовут Антон Потапов, я iOS разработчик в компании FINCH. Сегодня я хочу подробно рассказать про то как перевести мобильный проект на GraphQL, описать плюсы и минусы этого подхода. Приступим.

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

Aimybox в поиске: фреймворку для создания голосовых ассистентов нужен мастер iOS

Время на прочтение3 мин
Количество просмотров3.8K
Все вокруг говорят про голосовых помощников, Алису, Google Assistant, что они умеют, чего не умеют… А мы взяли и написали фреймворк для создания мобильных голосовых ассистентов. Да еще и с открытым исходным кодом! Пока мы это сделали только для Android, и теперь ищем крутого iOS-разработчика, кто с легкостью портирует Kotlin код на Swift.

Под катом рассказываем, зачем мы вообще это делаем, что у нас получилось и кого именно мы ищем в команду Aimybox.


Книга «Swift. Основы разработки приложений под iOS, iPadOS и macOS. 5-е изд. дополненное и переработанное»

Время на прочтение9 мин
Количество просмотров6.4K
image Привет, Хаброжители! Язык Swift молод, он растет, развивается и изменяется, хотя основные подходы к программированию и разработке уже сформировались. В новом, пятом издании книги была полностью переработана первая часть книги, что делает знакомство с языком Swift более комфортным, а весь текст актуализирован в соответствии с возможностями Swift 5. В ходе долгого и плодотворного общения с читателями появилось множество идей, благодаря которым новое издание стало еще более полезным и насыщенным учебными материалами. Теперь вы не только изучите Swift, но и получите начальные сведения о принципах разработки полноценных приложений. Мир Swift постоянно меняется, людей со значительным багажом знаний и опыта за плечами еще просто не существует в силу возраста языка, поэтому вы можете стать одним из первых специалистов.
Читать дальше →

Знакомимся с языком Swift на примере игры Snake

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


Всем привет! В преддверии запуска курса «iOS-разработчик. Базовый курс» мы организовали очередной открытый урок. Этот вебинар рассчитан на людей, которые имеют опыт разработки на любых языках и платформах, однако желают ещё изучить язык Swift и освоить разработку под iOS. На уроке мы подробно разобрали синтаксис и ключевые конструкции языка Swift, познакомились с основными инструментами разработки.


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

История одного «разработчика» или как новичку написать приложение для iOS

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


Итак май 2018 года. Предпринято 7 попыток за 7 лет начать программировать что-то под iOS. И каждый раз одно и тоже: то Objective-C что-то страшное и не понятное, то нету идеи. И дальше Hello World, раз в год, вообщем дело не заходило…

В этот раз новый Xcode и новый для меня язык Swift… И новая идея, хочу пуш уведомления для своего Zabbix сервера т.к. официального приклада нету, да и клиентов на тот момент не было…

До этого пуши присылал телеграмм бот, но он стал барахлить и тут же Роскомнадзор подоспел… Блокировка телеги особой роли не играет, т.к. есть микротик и это сразу было «исправлено».

Решено писать Zabbix уведомлялку, которая потом будет не только для уведомлений.
Читать дальше →

Никогда не поздно новый путь начинать

Время на прочтение2 мин
Количество просмотров10K
Хотелось бы поделиться своей историей начинания в области iOs разработки в свои полные 50 лет.

Как-то по жизни я всегда следовал принципу, что в жизни нужно попробовать все. Наверное, это пошло еще с детства. Тогда еще не было даже такого понятия, как «гаджет» и мы с друзьями после школы записывались на новые секции и новые кружки, короче, искали чем себя занять. Были опробованы все виды единоборств, настольный теннис, волейбол… Игра на гитаре, год репетиций и концертов в оркестре народных инструментов, потом игра в ВИА — короче, весь мир у твоих ног ). Потом институт по специальности «Радиоинженер» и после армии, с 1989 года, паяние-ваяние «ZX-Spectrum» (думаю, есть еще люди, которые помнят данные девайсы), сборка и ремонт телевизоров, потом, с начала 2000-х — ремонт мобильных телефонов и других гаджетов.

Ближайшие события

Чат на iOS: используем сокеты

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

Picture created by rawpixel.com

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

Приблизительное время чтения публикации: 25 минут.
Читать дальше →

MetricKit. Анализ производительности iOS приложений

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

Новая игрушка


Мы продолжаем знакомиться с новым материалом от Apple, представленным на WWDC. На этот раз рассмотрим MetricKit, это абсолютно новый фреймворк, который служит инструментом для мониторинга производительности приложений.
Читать дальше →

Выбираем правильную структуру данных в Swift

Время на прочтение8 мин
Количество просмотров15K
И снова здравствуйте. Прежде чем уйти на выходные хотим поделиться с вами переводом материала, который был подготовлен специально для базового курса «iOS-разработчик».




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

Моделирование состояния приложения с использованием объектов Store в SwiftUI

Время на прочтение4 мин
Количество просмотров6.8K
На этой неделе я хочу поговорить о моделировании слоя данных в SwiftUI. Я уже закончил работу над своим самым первым приложением, которое я создаю используя только SwiftUI. Теперь я могу поделиться способом создания слоя модели с использованием объектов Store, которые я использовал при разработке приложения NapBot.

Объект Store


Объекты Store, отвечают за сохранение состояния и предоставлении действии по его изменению. У вас может быть столько объектов Store, сколько вам необходимо, желательно чтобы они были простыми и отвечали за небольшую часть состояния вашего приложения. Например, у вас может быть SettingsStore для сохранения состояния пользовательских настроек и TodoStore для сохранения пользовательских задач.
Читать дальше →

Фоновое выполнение приложений в iOS 13

Время на прочтение5 мин
Количество просмотров29K
Главное событие года в мире iOS и MacOS-разработчиков, WWDC, неизменно радует всех занятых в индустрии людей выходом в свет новых версий операционной системы, фреймворков, железа — в общем, всего того, с чем собственно и предстоит работать.

Этот год исключением не стал и предметом активных обсуждений стали и новая версия iOS, и SwiftUI, и собственная ОС iPadOS для вы-сами-поняли-каких-устройств.

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

Реализация промо-предложений в iOS. Как зарабатывать на подписках больше?

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


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

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

MVC без C: Что изменит SwiftUI в архитектуре приложений?

Время на прочтение4 мин
Количество просмотров8.3K
MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представлен SwiftUI, который не имеет такого компонента.

Проблема с так называемыми massive view-controllers должна быть решена в SwiftUI. Так, необходимо найти новый способ правильной декомпозиции кода. Давайте посмотрим на текущее состояние платформы и подумаем, какие парадигмы мы можем использовать при разработке для iOS13 и более поздних версий.

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