нативная разработка мобильных приложений перекрестный справочник для ios и android
Нативная разработка мобильных приложений перекрестный справочник для ios и android
Physics.Math.Code.Books | Game development запись закреплена
Physics.Math.Code
Нативная разработка мобильных приложений. Перекрестный справочник для iOS и Android [2020] Шон Льюис, Майк Данн
В этой книге вы познакомитесь с простыми подходами к разработке мобильных приложений для iOS и Android. Если вашей команде приходится разрабатывать проекты сразу для двух этих систем или вы планируете перейти с одной системы на другую, это практическое руководство покажет вам, как решаются наиболее распространенные задачи на каждой из этих платформ.
В первой части представлены решения распространенных задач, которые приходится решать на любой платформе, таких как запись файла в локальное хранилище или создание HTTP-запроса. Вторая часть описывает процесс создания приложения на каждой платформе с использованием приемов из первой части. Примеры кода для Android представлены на двух языках – Java и Kotlin, поэтому книга может служить перекрестным справочником не только между iOS и AOSP, но и между Java и Kotlin для разработчиков на Android.
Издание предназначено для программистов, специализирующихся на разработке приложений для iOS и/или Android.
Native Mobile Development. A Cross-Reference for iOS and Android 2020 Shaun Lewis, Mike Dunn
Нативная разработка мобильных приложений перекрестный справочник для ios и android
Physics.Math.Code запись закреплена
Нативная разработка мобильных приложений. Перекрестный справочник для iOS и Android [2020] Шон Льюис, Майк Данн
В этой книге вы познакомитесь с простыми подходами к разработке мобильных приложений для iOS и Android. Если вашей команде приходится разрабатывать проекты сразу для двух этих систем или вы планируете перейти с одной системы на другую, это практическое руководство покажет вам, как решаются наиболее распространенные задачи на каждой из этих платформ.
В первой части представлены решения распространенных задач, которые приходится решать на любой платформе, таких как запись файла в локальное хранилище или создание HTTP-запроса. Вторая часть описывает процесс создания приложения на каждой платформе с использованием приемов из первой части. Примеры кода для Android представлены на двух языках – Java и Kotlin, поэтому книга может служить перекрестным справочником не только между iOS и AOSP, но и между Java и Kotlin для разработчиков на Android.
Издание предназначено для программистов, специализирующихся на разработке приложений для iOS и/или Android.
Native Mobile Development. A Cross-Reference for iOS and Android 2020 Shaun Lewis, Mike Dunn
Комбинация кроссплатформенного и нативного подхода в разработке мобильных приложений
Выпускать приложения для лишь одной мобильной платформы – не актуально и нужно заботиться о разработке сразу двух версий, для iOS и Android. И здесь можно выбрать два пути: работать на «нативных» языках программирования для каждой операционной системы или использовать кроссплатформенные фреймворки.
При разработке одного из проектов в компании DD Planet я сделал ставку на последний вариант. И в этой статье расскажу об опыте разработки кроссплатформенного приложения, проблемах, с которыми мы столкнулись, и найденных решениях.
Три подхода в разработке кроссплатформенных мобильных приложений
Для начала рассмотрим, какие подходы используются, когда нужно получить сразу два приложения: под iOS и Android.
Первый – cамый затратный, как по времени, так и по ресурсам: разработка отдельного приложения для каждой из платформ. Сложность этого подхода заключается в том, что каждая из операционных систем требует своего подхода: это выражается как в языке, на котором ведется разработка (для Android – Java или Kotlin, для iOS – Objective-C или Swift), так и способах описания UI части приложения (axml и xib или storyboard файлы соответственно).
Уже этот факт подводит нас к тому, что для такого подхода необходимо формирование двух команд разработчиков. Помимо этого придется дублировать логику для каждой из платформ: взаимодействие с api и бизнес-логику.
А что, если количество используемых API будет расти?
Из этого возникает вопрос: как уменьшить необходимое количество человеческих ресурсов? Избавиться от необходимости дублировать код для каждой платформы. Существует достаточное количество фреймворков и технологий решающих эту задачу.
Использование кроссплатформенного фреймворка (Xamarin.Forms, например) дает возможность писать код на одном языке программирования и описать логику данных и логику UI один раз, в одном месте. Поэтому необходимость использовать две команды разработчиков отпадает. А по итогу компиляции проекта на выходе получаем два нативных приложения. И это – второй подход.
Цель проекта — позволить запускать программы, написанные на C#, на операционных системах, отличных от Windows — Unix-системах, Mac OS и других. Сам же фреймворк Xamarin, по сути своей – библиотека классов, предоставляющей разработчику доступ к SDK платформы и компиляторы для этих них. Xamarin.Forms, в свою очередь, позволяет не только писать под обе платформы на одном языке, но проектировать дизайн экранов с использованием XAML разметки, привычной тем, кто уже имел опыт работы с WPF приложениями. В итоге сборки проекта получаем практически идентичный вид на всех платформах, так как на этапе компиляции все XF контролы преобразовываются в нативные для каждой платформы.
Писать код для каждой платформы разработчик вынужден только в том случае, если нужен доступ к каким-либо платформенным фичам (например, дактилоскопический сканер или уровень заряда батареи) или же необходимо более тонко настроить поведение контрола. В некоторых случаях при разработке приложения может потребоваться написание платформозависимого кода, но даже в этом случае никто не запрещает вынести платформенные функции в интерфейс и взаимодействовать в дальнейшем с ним из общего проекта.
Один язык программирования, мало кода и так далее. Все это звучит красиво но, Xamarin.Forms – не серебряная пуля, и вся его красота разбивается о камни реальности. Как только возникает ситуация, когда встроенные в XF-контролы уже не отвечают предъявленным к ним требованием, структура экранов и контролов становится всё сложнее и сложнее. Для обеспечения комфортной работы с экранами из общего проекта приходится писать все больше и больше кастомных рендеров.
На этом перейду к третьему подходу, который мы и используем при разработке приложений.
Мы уже выяснили, что использование Xamarin Forms может осложнить работу, а не упростить ее. Поэтому для реализации архитектурно сложных экранов, дизайнерских элементов и контролов, кардинально отличающихся от нативных, нашелся компромисс и возможность объединения первого и второго подхода.
Имеем все те же три проекта: общий PCL проект, но уже без Xamarin Forms, и два проекта Xamarin Android и Xamarin iOS. По-прежнему имеется возможность писать всё на одном языке, общая логику между двумя проектами, но нет ограничений единой XAML разметки. UI-составляющая контролируется каждой из платформ и использует нативные средства, на Android – нативный AXML, на iOS – XIB-файлы. Каждая платформа имеет возможность соблюдать свои гайдлайны, так как связь между Core и платформенными проектами организовывается только на уровне данных.
Для организации такой связи можно использовать паттерн проектирования MVVM и достаточно популярную его реализацию для Xamarin – MVVMCross. Его использование позволяет держать общую ViewModel для каждого экрана, где описана вся “бизнес-логика” работы, а его отрисовку доверить платформе. Так же это позволяет двум разработчикам работать с одним и тем же экраном (один с логикой — другой с UI) и не мешать друг другу. Кроме реализации паттерна, получаем достаточное количество инструментов для работы: реализация DI и IoC. Для подъема взаимодействия с платформой на уровень общего кода разработчику достаточно объявить интерфейс и реализовать его на платформе. Для типовых вещей MvvmCross уже предоставляет набор собственных плагинов. В команде мы используем плагин мессенджера для обмена сообщениями между платформой и общим кодом и плагин для работы с файлами (выбор изображений из галереи и др.).
Решаем проблемы сложного дизайна и многоуровневой навигации
Как уже было сказано раньше, при использовании сложных представлений на экране фреймворк может больше усложнить жизнь, чем облегчить. Но что назвать сложным элементом? Так как я занимаюсь преимущественно разработкой iOS, пример этой платформы и будет рассмотрен. Например, такая тривиальная вещь, как поле ввода, может иметь несколько состояний и достаточное количество логики для переключения и визуализации.
1000 строк. И, казалось бы: чего сложного может быть в дизайне поля ввода?
Простой пример сложного контрола мы увидели. А что с экранами?
Для начала уточню, что один экран приложения в большинстве случаев является одним классом – UIViewController, описывающим его поведение. В ходе разработки потребовалась создание многоуровневой навигации. Концепция разрабатываемого приложения сводится к управлению своей недвижимостью и взаимодействию с соседями и муниципальными организациями. Поэтому были построены три уровня навигации: собственность, уровень представления (дом, город, регион) и тип контента. Все переключение осуществляется в рамках одного экрана.
Делалось это для того, чтобы пользователь, где бы он ни находился, понимал, какой контент он видит. Для организации такой навигации главный экран приложения состоит далеко не из одного контроллера. Визуально его можно разделить на 3 части, но кто-нибудь сможет попробовать предположить сколько здесь использовано контроллеров?
Пятнадцать основных контроллеров. И это только для контента.
Вот такой монстр живёт на главном экране и неплохо себя чувствует. Пятнадцать контроллеров для одного экрана это, конечно, очень много. Это сказывается на скорости работы всего приложения, и нужно как-то это оптимизировать.
Мы отказались от синхронной инициализации: все вью-модели инициализируются в фоне и только тогда, когда это потребуется. Чтобы снизить время отрисовки, так же отказались от xib-файлов для этих экранов: абсолютное позиционирование и математика всегда быстрее, чем просчет зависимостей между элементами.
Чтобы уследить за таким количеством контроллеров нужно понимать:
Так как каждый таб представляет собой слайдер контроллеров (для того, чтобы создать на них свайповый переход), нужно понимать: каждый из них может находится в своем состоянии (например на одном открыты “Новости”, на другом “Голосования”). За этим следит всё тот же процессор навигации. Даже сменив уровень представления с дома на регион, мы останемся на том же типе контента.
Управляем потоком данных в реальном времени
Работая с таким количеством данных в приложении, нужно организовать поставку актуальной информации по всем разделам в реальном времени. Для решения этой задачи можно выделить 3 способа:
ASP.Net SignalR – библиотека от компании Microsoft, которая упрощает клиент-серверное взаимодействие в реальном времени, обеспечивая двунаправленную связь между клиентом и сервером. Сервер включает в себя полноценное API для управления соединением, события подключения-отключения, механизм объединения подключенных клиентов в группы, авторизацию.
SignalR может использовать в качестве транспорта и websockets, и LongPolling, и http-запросы. Тип транспорта можно указать принудительно или же довериться библиотеке: если можно использовать websocket, то он будет работать через websocket, если такой возможности нет, то он будет спускаться дальше, пока не найдет приемлемый транспорт. Этот факт оказался очень практичным, учитывая то, что планируется использовать его на мобильных устройствах.
Итого, какую выгоду мы получаем:
Внутри проекта используется обертка над SignalR библиотекой, которая еще больше упрощает работу с ним, а именно:
Второй клиент отвечает за получение нотификаций. Как я уже говорил, контент обычного типа получается посредством http-запросов, в дальнейшем его актуализация ложится на этот клиент, который и сообщает о всех важных изменениях в нём (например голосование перешло из одного статуса в другой, публикация новой новости).
Визуализируем данные в приложении
Одно дело данные получить, другое – показать. В обновлении данных в реальном времени есть свои сложности. Как минимум надо решить, как эти самые обновления презентовать пользователю. В приложении мы используем три вида нотификаций:
Автоматически обновлять данные можно только тогда, когда новый контент не перестраивает экран и не меняет размер контролов. Например, на экране опроса: информация о голосах всего лишь изменит значение прогресс-бара и проценты. Такие изменения не повлекут никакого изменения размеров их можно без проблем применить мгновенно.
Сложности возникают тогда, когда необходимо добавлять новый контент в списки. Все списки в приложении, по сути, являются ScrollView и обладают несколькими характеристиками: размер окна, размер контента и позиция скрола. Все они имеют статичное начало (верх экрана с координатами 0;0) и могут расширяться вниз. Добавить новый контент вниз списка, в конец, не представляет никаких проблем, список продлится. Но новый контент должен появиться вверху, и получается вот такая картина:
Находясь на 3 элементе, мы окажемся на 2 – скролл отскочит вверх. А так как новый контент может поступать постоянно – нормально скроллить пользователь не сможет. Вы, быть может, скажете: почему бы не рассчитать размер нового контента и не сместить скролл вниз на это значение? Да, так можно сделать. Но тогда придется вручную управлять позицией скролла, и если в этот момент юзер скроллил в каком-либо направлении, его действие прервется. Именно поэтому такие экраны нельзя обновлять в реальном времени без согласия пользователя.
Оптимальным решением в этой ситуации будет проинформировать пользователя, что, пока он скроллил ленту, кто-то опубликовал новый контент. В нашем дизайне это выглядит как красный круг в углу экрана. Кликнув на него, пользователь дает свое условное согласие на то, чтобы мы вернули его к началу экрана и показали свежий контент.
Таким подходом мы, конечно, избежали проблем «подсовывания» контента, но их все равно пришлось решать. А именно на экране чата, так как в ходе общения и взаимодействия с экраном новый контент необходимо отображать в разных местах.
Отличие чата от обычных списков заключается в том, что свежий контент находится внизу экрана. Так как это «хвост», добавлять контент туда можно без особых затруднений. Пользователь проводит здесь 90% времени, а это означает, что нужно постоянно держать позицию скролла и смещать его вниз при получении и отправке сообщений. В живой беседе такие действия приходится делать достаточно часто.
Второй момент: загрузка истории при скролле вверх. Как раз при подгрузке истории мы и попадаем в ситуацию, когда необходимо поместить сообщения выше уровня обзора (что повлечет смещение), чтобы скролл был плавным и непрерывным. А как мы уже знаем, чтобы не помешать пользователю, вручную управлять позицией скролла нельзя.
И мы нашли решение: мы его перевернули. Переворот экрана решил сразу две проблемы:
Такое решение помогло так же и ускорить отрисовку, избавив от лишних операций с управлением скроллом.
Кстати, о быстродействии. В первых вариантах экрана обнаружились заметные просадки при скролле сообщений. Так как контент в «баблах» разношерстный – текст, файлы, фотографии, — необходимо постоянно пересчитывать размер ячейки, добавлять и удалять элементы в бабл. Поэтому потребовалась оптимизация баблов. Мы поступили так же, как и с главным экраном, частично отрисовывая бабл абсолютным позиционированием.
При работе со списками в iOS перед отрисовкой ячейки необходимо знать её высоту. Поэтому, прежде чем добавлять новое сообщение в список, нужно в отдельном потоке приготовить всю нужную информацию для отображения, рассчитать высоту ячеек, обработать данные пользователя и, только после того, как мы узнаем и закэшируем всё что нужно, добавить ячейку в список.
В итоге мы получаем плавный скролл и не перегруженный UI поток.
Нативная разработка мобильных приложений
Автор: Данн М., Льюис Ш.
Дата выхода: апрель 2020 года
Формат: 160 * 230 мм
Бумага: офсетная
Обложка: Твердый переплет
Объем, стр.: 376
ISBN: 978-5-97060-845-6
Вес: 700
Аннотация
В этой книге вы познакомитесь с простыми подходами к разработке мобильных приложений для iOS и Android. Если вашей команде приходится разрабатывать проекты сразу для двух этих систем или вы планируете перейти с одной системы на другую, это практическое руководство покажет вам, как решаются наиболее распространенные задачи на каждой из этих платформ.
В первой части представлены решения распространенных задач, которые приходится решать на любой платформе, таких как запись файла в локальное хранилище или создание HTTP-запроса. Вторая часть описывает процесс создания приложения на каждой платформе с использованием приемов из первой части. Примеры кода для Android представлены на двух языках – Java и Kotlin, поэтому книга может служить перекрестным справочником не только между iOS и AOSP, но и между Java и Kotlin для разработчиков на Android.
Издание предназначено для программистов, специализирующихся на разработке приложений для iOS и/или Android.
Оплата
Наш интернет-магазин работает только по предоплате!
Мы принимаем следующие виды оплаты:
Вы так же можете выбрать оплату по платежной квитанции и оплатить по ней покупку в отделении любого банка.
Юридические лица могут выбрать счёт на оплату.
Возврат денежных средств возможен в случаях:
Возврат не проводится в случаях:
Для оформления возврата обращайтесь по электронной почте dmkpress.help@gmail.com.
Доставка:
Курьерская доставка по Москве в течение 7 дней после оплаты заказа.
Стоимость доставки:
Самовывоз возможен в течение суток после оплаты.
Адрес для самовывоза:
115487, г. Москва, проспект Андропова, 38
Доставка почтой России: от 7 до 28 дней с момента оплаты заказа.
Стоимость доставки:
35 книг по мобильной разработке на Android и iOS
Мобильная разработка — перспективная сфера для начинающего программиста. Мы собрали подборку книг, которые научат создавать приложения с нуля.
Книги по Android-разработке
Дэвид Гриффитс, Дон Гриффитс
«Head First. Программирование для Android»
Авторы дают азы программирования для Android — особенности и нюансы системы и процесса разработки приложений — с учётом нулевого уровня читателя. Пособие нужно читать главу за главой, чтобы перейти от простых объяснений к более сложным.
Вы узнаете, как структурировать приложения, создавать интерактивные интерфейсы, работать с разными устройствами, запускать сервисы в фоновом режиме и так далее. Книга предполагает, что вы уже немного владеете Java, так как с первой же главы будете практиковаться в написании реального кода. Одним учебником новичок обойтись не сможет, но это, без оговорок, самый быстрый старт для человека, не знакомого с мобильной разработкой.
Автор в сфере IT, digital, экономики и финансов. Ведет некоммерческий проект для начинающих писателей «ЛитЦех».
Ян.Ф. Дарвин
Android. Сборник рецептов.
Задачи и решения для разработчиков приложений
Этот сборник из более чем двухсот рецептов по созданию приложений ориентирован на опытных специалистов, знающих язык Java, основы работы с платформой Android и интерфейсом Java SE API. Инструкции даны в виде пошагового решения задач по работе с веб-службами, пользовательскими интерфейсами, механизмами определения местоположения и мультисенсорными жестами. Все рецепты даны с примерами работающего кода. Темы, поднимаемые в книге:
Кристин Марсикано, К. Стюарт, Билл Филлипс
Android. Программирование для профессионалов
Это издание рассказывает об основах программирования на Android, среде разработки Android Studio и других инструментах. Авторы на практике описывают, как создать восемь мобильных приложений разного типа: два простых и шесть посложнее.
При написании этих приложений вы отработаете основные приёмы и концепции программирования на Android. В книге освещаются темы локализации, доступности, модульного тестирования, архитектурного стиля MVVM и другие.
Пол Дейтел, Харви Дейтел, Александер Уолд
Android для разработчиков
Учебник опытных авторов, специализирующихся на книгах о программировании. Подходит для тех, кто начинает изучать разработку приложений для смартфонов и планшетов Android.
В книге подробно рассмотрено, как создавать приложения в Android SDK. При этом в основе инструкций, объясняющих основные концепции, — не фрагменты кода, а полностью работоспособные приложения. За счёт этого у читателя возникает целостная картина того, как правильно, эффективно и быстро их программировать.
Herbert Schildt
Java: A Beginner’s Guide
Учебник для начинающих изучать язык Java. Это шестое издание, обновлённое и дополненное в соответствии с платформой Java SE 8.
Вместе с автором Гербертом Шильдтом вы начнёте с самых азов — создания, компиляции и запуска кода. Затем перейдёте к синтаксису и конструкциям, составляющим ядро Java. Пособие также охватывает некоторые более продвинутые функции Java, например многопоточное программирование и Swing. Описаны лямбда-выражения и JavaFX — графический интерфейс Java. В конце каждой главы приводятся задания для самопроверки; к примерам кода даны комментарии, которые описывают методы программирования.
John Horton
Learning Java by Building Android Games — Explore Java Through Mobile Game Development
С этим учебником вы настроите среду разработки Android, затем рассмотрите ключевые темы Java — циклы, методы и ООП. Закрепите на практике полученные знания при создании математической игры, игры для развития памяти, пинг-понга, а также ретроаркады. В учебнике много скриншотов и минимум «воды».
James S. Cho
The Beginner’s Guide to Android Game Development
Автор рекомендует книгу всем разработчикам, которые хотели научиться создавать игры. Эта книга научит вас этому — и без применения каких-либо движков.
Каждая глава посвящена фундаментальной концепции разработки игр, чтобы вы постепенно освоили их и закрепили новые навыки на практике. С учебником предоставляется доступ к сайту — обширной библиотеке образцов игровых проектов на Java и Android, чтобы вы могли продолжить обучение самостоятельно.
Sergey Kosarevsky, Viktor Latypov
Android NDK Game Development Cookbook
Сборник для разработчика игр на Android включает около 70 рецептов написания кода на С++. Издание ориентировано на разработчиков среднего уровня.
Книга содержит рекомендации по разработке и отладке мобильных игр на рабочем столе. Вы научитесь писать многопоточный код для воспроизведения аудио, асинхронной загрузки ресурсов и доступа к сети, пользоваться современными OpenGL ES и программировать приложения без использования IDE — среды разработки.
Mario Zechner
Beginning Android Games
Учебник научит новичков разработке игр под Android. Вы изучите основы игрового дизайна и программирования, затем шаг за шагом создадите собственный игровой движок и игровые приложения, совместимые с различными версиями Android на смартфонах и планшетах.
Вы пройдёте весь процесс создания приложений с использованием API-интерфейсов, доступных в Android SDK. Авторы называют книгу «обратно совместимой»: учебник построен таким образом, что в практических заданиях вы сможете использовать и более ранние выпуски среды разработки Android SDK.
Bill Phillips, Brian Hardy
Android Programming: The Big Nerd Ranch Guide
Вводная книга по Android для специалистов, у которых уже есть опыт работы с Kotlin. Книга базируется на популярном курсе обучения Android Bootcamp проекта Big Nerd Ranch.
Вы изучите мобильную разработку под Android с помощью практических примеров в сочетании с чётким объяснением ключевых концепций и API. Эта книга посвящена практическим методам разработки приложений на Kotlin, совместимых с Android 5.0 (Lollipop), Android 8.1 (Oreo) и выше.
John Horton
Android Game Programming by Example
Книга предназначена для программистов под Android и на Java, которые хотят расширить свои знания в сторону создания игр. Издание также подойдёт для читателей без опыта разработки игр/приложений для Android-устройств и даже без знаний языка Java, но знакомых с основными принципами объектно-ориентированного программирования.
Greg Nudelman
Android Design Patterns: Interaction Design Solutions for Developers
Книга содержит более 75 шаблонов, которые можно использовать при создании пользовательских интерфейсов для смартфонов и планшетов и тем самым сэкономить бесчисленные часы разработки.
Схемы охватывают наиболее распространённые и в то же время сложные типы взаимодействия с пользователями. Все варианты интерфейсов сопровождаются иллюстрациями и пошаговыми руководствами, в которых приводится описание шаблона, принцип его работы, объяснение, когда и зачем его использовать, а также даны пояснения, какие шаблоны с ним связаны и какие конфликтуют.
Mark L. Murphy
Busy Coder’s Guide to Android Development
Современное и простое для понимания учебное пособие по Android-разработке. Предназначено для специалистов, знакомых с программированием на Java.
Автор дорабатывает свой учебник в соответствии с обновлениями в Android: электронная версия доступна по подписке на сайте CommonsWare в различных форматах для чтения. В книге более 200 глав, охватывающих всё — от начальных шагов в создании первого приложения до передовых методов разработки.
Jonathon Manning, Paris Buttfield-Addison
Mobile Game Development with Unity: Build Once, Deploy Anywhere
Это практическое руководство покажет вам, как создать красивый, интерактивный контент для Android и iOS-устройств на игровом движке Unity. Авторы рассматривают возможности Unity и дают конкретные рекомендации по их использованию в реальных игровых ситуациях.
Продвигаясь по книге, вы научитесь создавать 2D- и 3D-игры с нуля: структурировать графику, сценарии, звуки, физику экшн-игры. На практике вы разработаете 3D-симулятор космического боя со стрельбой из снарядов и перезаряжающимися объектами, а также научитесь управлять внешними 3D-моделями.
Antonio Leiva
Kotlin for Android Developers
Learn Kotlin the easy way while developing an Android App
Kotlin — язык для написания Android-приложений, который официально поддерживается Google. Эта книга поможет вам легко изучить все новые функции, которые отсутствуют в Java, и создать приложение для Android с нуля на Kotlin в качестве основного языка. Рекомендуется уже имеющим опыт в программировании специалистам, знакомым с Java.
Концепция книги в том, чтобы выучить язык на примерах, а не следовать типичной структуре изложения, как в справочнике. Автор рассказывает о наиболее интересных концепциях и идеях Kotlin, сравнивая его с Java 7. Поэтому вы сразу видите, в чём заключаются различия и какие части языка помогут ускорить вашу работу.
Iyanu Adelekan
Kotlin Programming by Example
Build real-world Android and web applications the Kotlin way
Вы исследуете особенности Kotlin на примере создания трёх полноценных мобильных приложений различной сложности. Сначала вы напишете свой тетрис, затем создадите мессенджер, и, наконец, напишете третье приложение, самое сложное, которое будет использовать технологии Google Maps API и Place Picker. К концу книги вы приобретёте опыт создания и развёртывания приложений для Android с помощью Kotlin.
С помощью этой книги вы:
Книги по iOS-разработке
Вандад Нахавандипур
iOS. Приемы программирования
С помощью руководств в этой книге вы сможете решить типичные проблемы при создании приложений для iPhone, iPad или iPod touch, освоите работу с iOS 7 SDK. Вы изучите сотни методов хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и папками. Вы научитесь создавать яркие и реалистичные пользовательские интерфейсы с UIKit Dynamics, работать с аудио и видео API iOS 7, разрабатывать приложения с учетом местоположения, интегрировать iCloud в свои приложения и многое другое. Все инструкции сопровождаются примерами кода, который можно сразу использовать.
Дэвид Марк, Джек Наттинг, Джефф Ламарш, Фредрик Олссон, Ким Топли
Swift. Разработка приложений в среде Xcode для iPhone и iPad с использованием iOS SDK
Книга подходит для начинающих в разработке на Swift. В ней освещаются новейшие технологии, необходимые для создания собственных приложений для устройств iOS. Все объяснения и инструкции написаны в дружелюбном и лёгком для восприятия стиле. Книга начинается с основ — с загрузки и установки Xcode и iOS 8 SDK, а затем проведёт вас через весь процесс создания первого простого приложения.
Книга хороша для новичков, но есть один нюанс — это неточности и ошибки перевода. Рекомендуем по возможности читать в оригинале.
Ханг Во
Оптимизация производительности приложений для iOS
Книга подойдёт программистам разного уровня, специализирующимся на разработке приложений под iOS.
Она учит эффективно решать частые проблемы увеличения и оптимизации производительности приложений для iOS. С помощью детальных инструкций вы научитесь разрабатывать быстрые и отзывчивые приложения и преуспеете в мобильной разработке.
Айк Харазян
Язык Swift. Самоучитель
Если вы только начинаете погружение в мобильную iOS-разработку, вам понадобится её основной язык — Swift. С помощью этого самоучителя вы сможете легко и быстро освоить его с нуля. Изложение строится от простого к сложному. Постепенно вас знакомят с основным синтаксисом и особенностями, а также кратко объясняют основы объектно-ориентированного программирования.
Несмотря на то что самоучитель написан для старой версии Swift 2.0 и частично устарел, он очень подробно и обстоятельно раскрывает суть разработки на Swift доступным для новичков языком.
Василий Усов
Swift. Основы разработки приложений под iOS и macOS
Практически идеальная книга на русском языке для начинающих изучать программирование, открыв которую, вы войдёте в мир разработки приложений под iOS. Основное её отличие — новизна: книга вышла в 2018 году и может похвастаться актуальным содержанием и на текущий год. Все примеры кода соответствуют версии Swift 4.1, операционной системы версии не ниже 11 и версии Xcode не ниже 9.
Paul Hudson
Hacking with Swift
Пол Хадсон — широко известный эксперт в мобильной разработке. Он не просто специализируется на iOS и языке Swift, его основная деятельность — это написание книг о Swift. На сегодня он издал целый ряд книг об этом языке, у его блога в Твиттере почти 30 тысяч подписчиков, он ведёт YouTube-канал и сайт, посвящённые разработке на Swift. Мы рекомендуем не только издание «Hacking with Swift», одно из лучших в своем роде, но и вообще все его книги.
Matthijs Hollemans
iOS Apprentice
Книга для новичков не только в iOS или Swift, но и в программировании в целом. Написанное в непринуждённой форме руководство простыми словами и без узкоспециализированных терминов подробно объясняет, как написать приложение с нуля. Четыре урока посвящены созданию четырх приложений — и каждое с чуть большим усложнением, чем предыдущее. Вы сделаете:
Jonathon Manning, Paris Buttfield-Addison
iOS Swift Game Development Cookbook
Simple Solutions for Game Development Problems
Книга содержит подробные рецепты для решения широкого круга распространённых проблем разработки игр для iOS — от математики 2D и 3D в SpriteKit и OpenGL до производительности. Для полного понимания материала читатель должен уже быть немного знаком с iOS, Swift и Objective-C.
После прочтения книги вы сможете разрабатывать архитектуру и макет кода игры, настраивать меню с UIKit, использовать методы для воспроизведения звуковых эффектов и музыки. Вы изучите различные способы хранения информации, научитесь работать с 2D- и 3D-графикой с помощью SpriteKit и SceneKit соответственно, сможете создавать алгоритмы с искусственным интеллектом и многое другое.
Dr. Alex Blewitt
Swift Essentials
Компактное руководство, позволяющее вам быстро создавать свои собственные приложения для iOS.
С помощью этой книги вы погрузитесь в синтаксис и возможности Swift, научитесь работать со Swift в Xcode, узнаете, как создавать полноценные приложения для iOS, как использовать раскадровку сценариев Swift для разработки многостраничных приложений и получите представление о JSON и XML.
Stephen Haney
Game Development with Swift
Если вы хотите создавать игры на iOS с помощью Swift, то эта книга для вас. Для её понимания вам нужно знать основные понятия программирования, но опыт разработки игр или работы в экосистеме Apple не обязателен.
Книга начинается с рассказа о возможностях Swift для разработки игр. В процессе обучения вы:
Vandad Nahavandipoor
iOS 11 Swift Programming Cookbook
Solutions and Examples for iOS Apps
iOS 11, Swift 4 и Xcode 9 предоставляют множество новых API для разработчиков iOS. С помощью этой книги рецептов вы узнаете более 170 проверенных решений для работы с новейшими функциями iOS 11 и watchOS 4, которые упростят вашу повседневную разработку приложений.
Книга подходит для middle- и senior-разработчиков iOS, желающих работать с новейшей версией системы. Среди тем, рассмотренных в этой книге:
Patrick Alessi
Beginning iOS Game Development
Для специалистов, не имеющих опыта работы с платформой iOS. Автор книги Патрик Алесси, профессиональный iOS-разработчик, представляет архитектуру системы, пошаговые инструкции по разработке игр и знакомит с языками разработки. Начиная с основных структурных элементов и заканчивая рисованием, реагированием на взаимодействие с пользователем, анимацией и звуком, эта книга представляет собой универсальный инструмент для создания и запуска игры.
Arjan Egges
Swift Game Programming for Absolute Beginners
Как и следует из названия, книга написана специально для начинающих. С помощью подробного руководства автора вы напишете четыре простые и забавные игры.
Книга примечательна подходом — «быстрое» программирование, которое основано не на синтаксисе языка, а на структуре игры. Вы научитесь создавать игровые миры, управлять игровыми объектами и состояниями, определять уровни прохождения игроками, реализовывать анимацию на основе реалистичной физики и многое другое. Попутно вы будете изучать язык в игровом контексте.
Muhammad A. Moniem
Learning Unreal Engine iOS Game Development
Автор в пошаговых инструкциях объяснил весь процесс разработки под iOS — от написания кода игры до отправки её на сервер. Если вы разработчик игр, дизайнер, художник или новичок в этой индустрии и хотите создавать iOS-игры, эта книга для вас. В процессе изучения материала вы освоите:
James Goodwill, Wesley Matlock
Beginning Swift Games Development for iOS
Эта книга предназначена для разработчиков приложений под iOS, новичков в Swift или для тех, кто впервые задумывается о разработке мобильных приложений для этой системы. После её прочтения вы создадите своё первое приложение, которое сможете запустить на любом устройстве с поддержкой iOS и, возможно, продать в Apple iTunes App Store.
App Development with Swift
Курс по языку программирования от самих создателей языка.
Учебник начинается со знакомства с инструментами разработки iOS, основными концепциями программирования на Swift, а также с лучшими отраслевыми практиками. Следуйте пошаговой учебной программе, выполняйте практические упражнения и создавайте с нуля своё первое приложение для системы iOS в соответствии с последними требованиями.
Leigh Williamson, John Ponzo, Patrick Bohrer, Ricardo Olivieri, Karl Weinmeister, Samuel Kallner
Swift in the Cloud
Уникальная книга, написанная командой разработчиков, которая помогла перенести язык Swift в облачные вычисления. Это своего рода квинтэссенция их опыта, руководство по написанию и запуску программ для облачной среды на языке Swift. Здесь вы найдёте полный обзор всех аспектов создания и запуска приложений на языке Swift в среде облачных вычислений, дополненный примерами реального кода, с которым вы сразу можете начать работать и экспериментировать.
Jon Hoffman
Mastering Swift 5
Deep dive into the latest edition of the Swift programming language
Благодаря этому исчерпывающему руководству вы узнаете всё о Swift — от основ языка до популярных функций, таких как параллелизм, обобщения и управление памятью. Обновленное издание рассказывает о пятой версии языка Swift, рассматривая самые актуальные его возможности, подкреплённые живыми примерами кода. Автор раскрывает темы обработки ошибок, замыкания и расширения протокола, применения протокол-ориентированного программирования и многие другие.
Matt Neuburg
Programming iOS 12
Dive Deep into Views, View Controllers, and Frameworks
Книга подойдёт тем, кто уже знаком с основами Swift, XCode и средой Cocoa. Автор предлагает более глубокое изучение процесса создания приложений, в частности, управление контроллерами и добавление функций из фреймворков iOS. Все инструкции сопровождаются примерами кода, который доступен на GitHub для скачивания, изучения и запуска. Книга описывает все новинки iOS 12, изменения в Xcode 10 и Swift 4.2. Кроме того, к выходу готовится переиздание — для iOS 13.
Заключение
В статье приведено два списка книг для программистов разных уровней, желающих погрузиться в мобильную разработку. На чём фокусируетесь вы — Android или iOS? Если вы пока не определились со специализацией, рекомендуем записаться на курс «Мобильный разработчик PRO», где вы станете настоящим универсалом, который способен создать с нуля приложение для любой системы. Здесь вы изучите все нюансы разработки мобильных приложений, которые не поместятся ни в какие книги.