Рубрика «swift» - 7

В конце марта вышел релиз Swift 5.2 для Xcode 11.4. В нём улучшена диагностика ошибок, анализ зависимостей, расширен функционал SwiftPM. Обзор некоторых изменений уже был опубликован на Хабре, в этой же статье рассмотрена эволюция самого языка с возможными примерами использования.

Swift 5.2. Обзор всех изменений - 1
 Читать полностью »

В этой статье я бы хотел еще немного раскрыть возможности Core Data. Данная статья является продолжением. Я очень надеюсь что у меня получится донести мысль о том, что Core Data не одна из множества реляционных баз данных, а очень мощный инструмент который сможет стать неотъемлемым оружием в арсенале любого уважающего себя IOS-разработчика.

Ну что ж, начнем!
Читать полностью »

Apple предоставляет различные варианты обработки данных и событий в iOS приложениях. Обработка событий UIControl происходит через паттерн target-action. В документации к UIControl написано следующее:

The target-action mechanism simplifies the code that you write to use controls in your app

Посмотрим на пример обработки нажатия на кнопку:Читать полностью »

Хождение в грабли. Arduino - 1

Я редко занимаюсь чем-то «низкоуровневым». Мой примерный рабочий день состоит из разработки мобильных приложений для бизнеса и кучи разноплановых менеджерских штук. Само собой, иногда хочется отвлечься. Получается это редко, и, наверное, поэтому, доставляет особое удовольствие. В этот раз отвлечься было решено с помощью набора «Амперка. Тетра», который предназначен для детей и с помощью которого можно узнать основы схемотехники, названия всяких сенсоров, и попробовать попрограммировать что-то, работающее в реальном мире, а не на экране компьютера. В общем, когда ты взрослый бородатый мужик — вообще самое оно.

Читать полностью »

Переход c Cocoapods на Swift Package Manager - 1

Cocoapods считается наиболее популярным менеджером зависимостей для iOS. Последние годы Apple работает над развитием своего нативного менеджера зависимостей Swift Package Manager (SPM).

Изначально его использование было возможно только для server-side Swift или приложений для терминала. На таких приложениях обкатывали и дорабатывали SPM, комьюнити знакомилось с его работой, а команда Apple получила бета тестеров.

С релизом Xcode 11 SPM начал приходить и в мир разработки под iOS. Сейчас это уже полноценный инструмент, который можно использовать, но пока с ограничениями.
Читать полностью »

В этом дайджесте магазины приложений, борющиеся с коронавирусом, Dynamic Delivery и Create ML, мобильные интерфейсы и онбординг, мультиплатформенный Kotlin и дизайнерский Flutter.

Дайджест интересных материалов для мобильного разработчика #336 (2 — 9 марта) - 1Читать полностью »

Create ML в iOS - 1

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

Но прежде чем начать, немного истории и пояснений. На ежегодной конференции для разработчиков WWDC2018 компания Apple представила инструменты для работы с машинным обучением Create ML. Обученная в Create ML модель является результатом применения алгоритма машинного обучения для набора обучающих данных. Модели не занимают много места (около 3Мб), поэтому их можно хранить в проекте. Изначально модели предлагалось обучать с помощью Playgrounds в XCode 10 и поддерживалась работа с изображениями, текстом и таблицами. При запуске playgrounds проекта необходимо было импортировать библиотеку CreateML и запустить MLImageClassifierBuilder (в случае если бы мы обучали модель для классификации изображений).

import CreateMLUI

let builder = MLImageClassifierBuilder()
builder.showInLineView()

В 2019 году Apple представила совершенно новый инструмент для работы с моделями машинного обучения, отделив его от Playgrounds. Стало возможным обучать модели без единой строчки кода. Список типов данных пополнился звуками и активностью. Всего представлено 5 типов данных и 9 шаблонов моделей. Давайте рассмотрим каждый тип данных и какие модели мы можем получить в результате.
Читать полностью »

И мышонок, и лягушка. Универсальный Компилятор - 1В серии про надежное программирование [1], [2] остался незаслуженно забытым Swift.
Я, честно говоря, просто не считал его кроссплатформенным, а работающим исключительно для macOS/iOS.
Тут случайно выяснилось, что Swift также поддерживается такой средой разработки, как RemObjects Elements.

Оказалось, у неё Универсальный Компилятор. Умеет компилировать программы на C#, Go, Java, Oxygene Object Pascal, Swift для: Android, Cocoa (MacOS, iOS, tvOS), JVM, Linux (x64, armv6, aarch64), .NET/.NET Core/Mono, Native Windows(x86/x64), WebAssembly.
Причем делает это практически в любых комбинациях язык -> целевая система! Например, можно написать программу на Java, которая будет использовать WPF для целевой платформы .NET, и это все есть в примерах, идущих в поставке.

Итак, представляю мини-заметку про RemObjects Elements, а заодно про надежность двух поддерживаемых в ней языков — Swift и Oxygene.

Рисунок с сайта radionetplus

Читать полностью »

Всем привет.

4 года назад я уже разбирался с вебсокетами в iOS, тогда я решил задачу с помощью одной из библиотек cocoapods, статья есть на Хабре. А сегодня хочу продемонстрировать еще одно решение, нативное без cocoapods.

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

Воспользуюсь я для своих целей системным фреймворком CFNetwork.
Читать полностью »

20 библиотек для эффектного iOS-приложения - 1

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

Все анимации являются ссылками на свои полноразмерные версии.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js