Мобильная разработка
4.15K subscribers
177 photos
23 videos
1 file
240 links
@haarrp - admin

@itchannels_telegram - 🔥лучшие ит-каналы

@javascriptv - продвинутый javascript

@JavaScript_testit- js тесты

@programming_books_it - бесплатные it книги

@ai_machinelearning_big_data - ml
加入频道
iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 1

Честно говоря, тестирование — это не так весело. Я бы предпочел просто запустить приложение, ни о чем другом не заботясь. Но, поскольку это неотъемлемая часть любого проекта, которая абсолютно необходима для хорошего пользовательского взаимодействия, продемонстрирую выполнение некоторых базовых тестов, помогая вам сэкономить время.

Вот что мы рассмотрим вместе с дополнительными рекомендациями.

Проект с тестированием
▪️Создание проекта с тестами
▪️Добавление тестов в имеющийся проект

Модульные тесты
▪️Модели декодирования
▪️HTTP-запросы с HTTP-заглушками

Тесты пользовательского интерфейса
▪️Настройка идентификатора доступности
▪️Инициализация представления
▪️SearchBar
▪️TableView
▪️Навигация
▪️Статичные и динамические UILabel

Покажу демо с очень простым примером для извлечения репозиториев GitHub по введенному ключевому слову. Этот проект наверняка пробовали все знакомые со Swift. Загружается он здесь.

Читая статью, заглядывайте туда.

📌 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 2

Модульный тест

Во-первых, что такое «модульный тест»? Это процесс проверки небольших фрагментов кода для обеспечения его целостности. Проверим пользовательские модели: struct, class, protocol и т. д.

Предпочитаю создавать отдельный class, делая из XCTestCase подкласс, соответствующий каждой тестируемой модели.

Тестирование моделей декодирования
Начнем с тестирования моделей декодирования Repository и Response. Упрощаем тестирование: в цель testsDemoTests добавляем SampleData. Это json-файлы с примерами ответов. Возьмите их на странице GitHub или создайте свои.

Тестируем Repository:

/
// RepositoryTests.swift
// testsDemoTests
//
// Создано Itsuki 17.10.2023.
//

import XCTest
// 1
@testable import testsDemo

final class RepositoryTests: XCTestCase {

// 2
var sut: Repository!

override func setUpWithError() throws {

try super.setUpWithError()
// 3: инициализируем экземпляр
// sut = YourTestInstance()
}

override func tearDownWithError() throws {
try super.tearDownWithError()
// 5: очистка
sut = nil
}

// 4
func testRepositoryDecoding() throws {

let path = Bundle(for: ResponseTest.self).path(forResource: "sampleRepository", ofType: "json")!
let data = NSData(contentsOfFile: path)! as Data

let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
sut = try! decoder.decode(Repository.self, from: data)
XCTAssertEqual(sut.id, 44838949)
XCTAssertEqual(sut.fullName, "apple/swift")
XCTAssertEqual(sut.stargazersCount, 61951)
XCTAssertEqual(sut.language, "C++")

}

}


Присмотримся, что здесь происходит:

📌Продолжение
📌Часть 1
👍31
📊 Миграция Core Data <//>

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

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

О том, как это сделать — тут 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Вышел новый плагин для Figma, который позволяет превращать дизайны в полноценные работающие приложения на SwiftUI.

Использовать Trace можно бесплатно.

Попробовать

@neurlal
👍43🔥2
📱🔅Возможная интеграция Gemini с Android

Google сообщила, что собирается добавить функции Gemini в операционную систему Android и Android Auto. Также в компании анонсировали и другие нововведения для операционной системы Android.

Чат-бот Gemini станет доступен в «Сообщениях» и поможет, например, улучшить шутку в переписке с другими пользователями. Также ИИ предложит свои варианты ответов на вопросы других людей, например сам посчитает, сколько пользователю осталось ехать до пункта назначения. В «Картах» Gemini будет показывать расширенную информацию об объектах по пути, например укажет часы работы заведения общепита.

Также в Android-версии «Документов» можно будет оставлять рукописные заметки стилусом или пальцем в определенном цвете. Как считают разработчики, это будет даже более информативно, чем текстовые комментарии. В приложении Google Fitbit появится интеграция с Health Connect, а в Spotify можно будет выбирать устройство для вывода звука. В Wear OS появится функция доступа к документам Google Wallet.

Такие вот у Google планы, что ж, посмотрим)

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
📱Телефон должен знать, что вам нужно, еще до того, как вы спросите

На Всемирном мобильном конгрессе в этом году компания Brain.ai заставила всех дважды подумать о будущем смартфонов. Они продемонстрировали новый вид технологий, в которых искусственный интеллект — это не просто помощник, а главный игрок. Дело не в том, чтобы добавить больше камер или увеличить экраны. Речь идет о том, чтобы ваш телефон понимал вас и работал с вами на совершенно новом уровне.

Джерри Юэ из Brain.ai поделился взглядом в будущее, в котором, возможно, наши телефоны в том виде, в каком мы их знаем, отойдут на второй план. Они не просто говорят о внесении небольших изменений; они переосмысливают то, как мы используем наши телефоны.

Возникает главный вопрос: в чем дело с нашими смартфонами сегодня? Brain.ai считает, что искусственный интеллект может превратить наши телефоны из того, чем мы пользуемся, в устройство, способное понять нас. Как будто они берут мозги у телефонов Android и учат их думать самостоятельно.

Скоро мы все, возможно, заговорим о «телефонах с искусственным интеллектом». Дело не только в том, чтобы делать более качественные фотографии с помощью телефона; дело в том, чтобы телефон знал, что вам нужно, еще до того, как вы спросите. Samsung уже взялась за эту идею, и можно поспорить, что Google и Apple не сильно отстанут. Эта технология может сделать наши телефоны намного полезнее.

Основная идея Brain.ai заключается в том, чтобы сделать искусственный интеллект настолько неотъемлемой частью телефона, чтобы разговаривать с ним было так же естественно, как отправлять текстовые сообщения другу. Представьте, что вы просите телефон найти подарок маме на день рождения, и он не только найдет подарок, но и разместит его на небольшой симпатичной веб-странице. Дело не в броских трюках, а в том, чтобы сделать телефон умным помощником в повседневной жизни.

↪️ Читать подробнее

@vistehno
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😡31
📱 Apple пообещала упростить перенос данных с iPhone на Android-устройства в ЕС к осени 2025 года

Apple намерена упростить переход с iPhone на Android-устройства в соответствии с требованиями Закона о цифровых рынках ЕС, который уже вступил в силу.
Производитель изложил свой план относительно соблюдения нового закона ЕС в документе. Новое положение направлено на усилении конкуренции в экосистеме приложений и требует от Apple ослабления контроля над App Store и iOS.

Мера Apple должна помочь поставщикам других операционных систем создать более эффективные решения для передачи данных с iPhone на смартфон стороннего производителя. Корпорация не использует в документе название Android, однако мобильная ОС Google получит наибольшую выгоду от нововведения.

В конце 2024 года или начале 2025 года Apple также представит инструмент для экспорта данных браузера в новый браузер на том же устройстве.

В настоящее время пользователи Android могут использовать iOS-приложение — Switch to Android — для переноса важных данных, включая контакты, календари, фотографии, видео, сообщения и многое другое. Однако некоторые менее важные данные по-прежнему нельзя экспортировать.

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1🤮1
📌Эффекты частиц для SwiftUI <//>

Vortex — это крутая, высокопроизводительная библиотека системы частиц для SwiftUI, позволяющая создавать такие красивые эффекты, как огонь, дождь, дым и снег, всего за несколько строк кода.

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

Github
2👍2
🖥 ​​Делимся интересным плагином Package Search для поиска библиотек для Java и Kotlin прямо из редактора.

По умолчанию он поддерживает поиск в следующих менеджерах пакетов: Maven, Gradle и Amper.

А какие интересные инструменты используете вы в работе? Поделитесь, может, кому-то будет полезно.

#java #kotlin #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
🚀 Xcode Preview <//>

С помощью Xcode previews можно вносить изменения в представления вашего приложения в коде и быстро видеть результат этих изменений на панели предварительного просмотра.

https://developer.apple.com/documentation/xcode/previewing-your-apps-interface-in-xcode
👍5
🛠 twostraws/Ignite

Генератор статических сайтов для разработчиков Swift.

Language: Swift
Stars: 376 Issues: 7 Forks: 2

https://github.com/twostraws/Ignite
🔥61👍1
💻 Отличная статья-презентация о работе с шаблонизаторами Kotlin

В статье рассматривается использование шаблонизатора Pebble для формирования HTML-документов и его особенности, включая поддержку фильтров, тегов и наследования шаблонов.

Описаны условные конструкции, проверки и наследование шаблонов в рамках использования шаблонизатора Pebble.

Обсуждаются принципы работы с шаблонами и передача списков данных в шаблоны.

Параллельно рассматриваются различные аспекты разработки приложений на Kotlin, включая императивный, объектно-ориентированный и функциональный синтаксис; рассматривается работа с функциями в Kotlin и их объектная природа.

Кроме этого обсуждается вопрос null-безопасности в Kotlin и удобные средства для обработки этой ситуации.

📎 Онлайн-презентация

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Apple открыли доступ к новому интерактивному учебнику по Swift и SwiftUI.

Эти руководства по разработке на Swift являются первым шагом к карьере в области создания приложений с использованием Xcode, Swift и SwiftUI. Там представлены несколько руководств, основанных на реальных примерах приложений, включая прототипы приложений для обмена сообщениями, прогноза погоды и даже первого приложения для visionOS. Чтобы сохранить ссылку и не упустить информацию, перейдите по адресу:

https://developer.apple.com/tutorials/develop-in-swift
👍62🔥2
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю

Почитать:
KMP, догфудинг и велосипеды в стартапе американской версии «Кухни на районе»
SwiftUI: архитектура State-Model-View
Как исправить ITMS-91053: Missing API declaration
Как определить, что мобильное приложение написано на Flutter
Эффективный Dart: Руководство по документации
Сам себе экосистема. Часть 4: как я реализовал клиент Telegram на Android-смартфоне 14-летней давности?
Распознавание виджетов на экране приложения Flutter
Мобильная разработка за неделю #532 (25 — 31 марта)
GETTING STARTED WITH FLUTTER
Marveling at Shazam: Unveiling the Engineering Wonders Behind the Iconic App
Creating an auto-scrolling Сarousel component using FlashList in React Native
How to use Flutter's official documentation effectively for learning and reference
FLUTTER VS REACT NATIVE: A COMPARISON GUIDE
Case study: Sababa
Essential Programming Concepts for Mastering iOS Development
Flutter Flavor: Elevating Mobile App Development with a Dash of Customization in Flutter Projects using Flavor
Embed a form builder with Swift
How to setup rnuilib(wix) for a React Native CLI Project.

Посмотреть:
🌐 Как работает Android Work Profile ( 13:06)
🌐 Разбор кода магазина приложений ( 01:19:05)
🌐 Если пришла мысль, значит кто-то желает её РЕАЛИЗОВАТЬ через меня, согласны? 👇🏻 ( 00:05)
🌐 Стрим №2. Создаем консольное приложение с учениками на Swift. #errornil ( 43:35)
🌐 НОВАЯ идея может быть непонятной или глупой. Нельзя судить о ней по описанию. Ее нужно воплотить ( 00:11)
🌐 Правда от HR // Почему джунов не берут на работу? ( 01:16:15)

Хорошего дня!
🔥4👍32
🌟 Apple представила модель Ferret-UI

Благодаря мультимодальным Lms улучшилось понимание мобильного интерфейса

Ferret-UI демонстрирует отличное понимание экранов пользовательского интерфейса и способность выполнять открытые инструкции.

Ferret-UI превосходит не только большинство MLLM с открытым исходным кодом, но и GPT-4V по всем элементарным задачам оценки и создания пользовательского интерфейса.

https://huggingface.co/papers/2404.05719
2👍2
## Compose Rich Editor

Текстовый редактор для Jetpack Compose и Compose Multiplatform, полностью настраиваемый и поддерживающие общие функции ввода текста. Основные фичи — мультиплатформенность, простота в использовании (API Compose Rich Editor использует возможности языка Kotlin для простоты и минимального количества шаблонного кода), WYSIWYG.

Github

#библиотека
👍53
🚀 ​Крутой опенсорс-проект : полноценная игра на Swift

isowords — это игра для iOS по поиску слов на кубиках. Надо соединять буквы, чтобы составить слова, чем длиннее, тем лучше, а когда буква будет использована в третий раз, кубик исчезнет, открыв новые буквы внутри.

Это большое и сложное приложение, построенное полностью на Swift. Логика iOS-клиента построена на Composable Architecture, а пользовательский интерфейс — на SwiftUI с небольшим количеством SceneKit. Сервер также построен на Swift с использованием экспериментальных библиотек.

Исходники проекта на гитхабе: https://github.com/pointfreeco/isowords

@mobdevelop
👍72
📱 Android-приложение для демонстрации работы основных функций SDK на Kotlin

Отличная идея для пет-проекта;
описание возможностей приложения:
• Инициализация платежа
• Отмена платежа
• Возврат платежа
• Проведение клиринга
• Проведение рекуррентного платежа
• Получение информации/статуса платежа
• Добавление карт/Удаление карт
• Оплата добавленными картами
• Безакцептные платежи
• Создание платежа с Google Pay

🖥 GitHub

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍2🤣1