Для языка программирования Swift существует множество правил. Например, компания AirBnB предлагает следующую кодовую конвенцию:
— Для именования типов и протоколов используется PascalCase, а для всего остального — lowerCamelCase.
— Булевым значениям даются имена вроде isSpaceShip или hasSpacesuit, чтобы было ясно, что это именно булевы значения, а не какие-то другие.
Но лучший подход для разработки на Swift — это стиль самой компании Apple. Вот несколько полезных советов, которые помогут улучшить читаемость вашего кода:
— Имена переменных должны быть короткими и осмысленными.
— Использование префиксов для идентификации значений внутри массивов.
— Оставляйте комментарии только там, где они действительно необходимы.
— Применяйте методы расширения, когда это уместно.
— Старайтесь писать максимально лаконичный и понятный код.
🔗 Оригинал статьи
🔗 Перевод
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3👍2
Media is too big
VIEW IN TELEGRAM
⚡️ Используем шаблон Builder в Kotlin
Шаблон проектирования Builder помогает строить сложные объекты поэтапно. Насколько он подходит для Kotlin?
Автор ролика рассматривает классический вариант этого шаблона и показывает, как его можно усовершенствовать с помощью особенностей Kotlin и библиотек.
00:00 — Начало
00:18 — Пример кода
02:01 — Классическая версия шаблона
05:02 — Обновление шаблона в Kotlin
09:15 — Заключение
🔗 Источник
Шаблон проектирования Builder помогает строить сложные объекты поэтапно. Насколько он подходит для Kotlin?
Автор ролика рассматривает классический вариант этого шаблона и показывает, как его можно усовершенствовать с помощью особенностей Kotlin и библиотек.
00:00 — Начало
00:18 — Пример кода
02:01 — Классическая версия шаблона
05:02 — Обновление шаблона в Kotlin
09:15 — Заключение
🔗 Источник
👍3❤1🔥1
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3
Forwarded from Machinelearning
PocketPal AI - проект Ai-ассистента на базе SLM, которые запускаются локально на iOS и Android без необходимости подключения к Интернету:
Приложения на обеих платформах позволяет выбирать модели, настраивать параметры инференса (системный промпт, температура, шаблоны чата и BOS), следить за показателями производительности в реальном времени и имеют функцию автоматической выгрузки моделей из памяти устройства, когда приложение в фоновом режиме.
Список моделей в приложении (загружаются вручную из меню):
Помимо этих моделей, можно загрузить любую модель в формате GGUF через опцию "Add Local Model" в меню моделей приложения на устройстве.
В планах проекта расширение списка поддерживаемых моделей, улучшение функций пользовательского интерфейса и поддержка большего количества версий Android/
⚠️ Требования для локальная разработки проекта PocketPal:
# Clone repository
git clone https://github.com/a-ghorbani/pocketpal-ai
cd pocketpal-ai
# Install dependencies
yarn install
# Install dependencies iOS only
cd ios
pod install
cd ..
# Run App via iOS Simulator
yarn ios
# Run App via Android Simulator
yarn android
@ai_machinelearning_big_data
#AI #ML #SLM #iOS #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2👍1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Создавайте ПОЛНОЦЕННЫЕ ПРИЛОЖЕНИЯ всего по текстовому запросу — и это займёт всего лишь полминуты!
С помощью сервиса Bolt вы можете собрать веб-приложение, даже если совсем не разбираетесь в программировании.
Всё просто: достаточно описать свою идею, например, «создай аналог Дискорда», и всё будет сделано автоматически. Приложение можно сразу протестировать в песочнице, поручить ИИ внести дополнительные изменения и доработать код.
После этого остаётся нажать кнопку «Deploy», и ваше приложение станет доступно всем пользователям. Более того, использовать сервис можно совершенно БЕСПЛАТНО.
Забираем имбу тут.
С помощью сервиса Bolt вы можете собрать веб-приложение, даже если совсем не разбираетесь в программировании.
Всё просто: достаточно описать свою идею, например, «создай аналог Дискорда», и всё будет сделано автоматически. Приложение можно сразу протестировать в песочнице, поручить ИИ внести дополнительные изменения и доработать код.
После этого остаётся нажать кнопку «Deploy», и ваше приложение станет доступно всем пользователям. Более того, использовать сервис можно совершенно БЕСПЛАТНО.
Забираем имбу тут.
👍3🤯1
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
Курс Начинающий iOS разработчик - Beginner iOS Developer
1. Как создавать приложения для iOS?
2. Xcode 10 Основы работы, симулятор iPhone
3. Основные элементы Storyboard Xcode 10
4. Основы ООП, классы, переменные и константы в Swift 4
5. Создание экранов, Navigation Controller, Segue
6. Auto layout, Constraints Xcode - Верстка экрана iOS Приложения
7. TabBar Controller + Как добавить шрифты в проект iOS
8. UICollectionView - Как создать фотогалерею iOS
9. UICollectionView - Часть 2 - FullScreen & Zooming
10. UITableView - Часть 1 - Таблица с настройками, UserDefaults
#video #mobile #swift
https://www.youtube.com/watch?v=Nd8t60o7tIg&list=PLRJuPW6BGThvPVkbTua6i2TKomig76b2K&ab_channel=iCodeSchool
1. Как создавать приложения для iOS?
2. Xcode 10 Основы работы, симулятор iPhone
3. Основные элементы Storyboard Xcode 10
4. Основы ООП, классы, переменные и константы в Swift 4
5. Создание экранов, Navigation Controller, Segue
6. Auto layout, Constraints Xcode - Верстка экрана iOS Приложения
7. TabBar Controller + Как добавить шрифты в проект iOS
8. UICollectionView - Как создать фотогалерею iOS
9. UICollectionView - Часть 2 - FullScreen & Zooming
10. UITableView - Часть 1 - Таблица с настройками, UserDefaults
#video #mobile #swift
https://www.youtube.com/watch?v=Nd8t60o7tIg&list=PLRJuPW6BGThvPVkbTua6i2TKomig76b2K&ab_channel=iCodeSchool
👍4❤2
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2❤🔥1
⚡️ Как создавать мобильные приложения, которые приносят $3,000 в день
Четыре года назад я принял решение начать свой стартап и занялся разработкой мобильных приложений. К 20 сентября прошлого года мои приложения стали приносить свыше $3,000 ежедневно, причем большая часть дохода приходилась на iOS. Но буквально на следующий день Apple удалила все мои приложения из App Store и заблокировала мой аккаунт.
Я пытался оспорить это решение, подавал апелляции, предоставлял доказательства, скриншоты и даже направил досудебную претензию, однако ответа практически не последовало. Теперь я подал иск против Apple, и доступ к рынку iOS для меня сейчас закрыт.
Не хочу жаловаться, скорее, хочу поделиться своим опытом о том, как простые идеи помогли мне достичь значительного успеха. Надеюсь, кто-то найдет эту информацию полезной и сможет избежать тех ошибок, которые допустил я.
📌 Читать тред
@mobdevelop
Четыре года назад я принял решение начать свой стартап и занялся разработкой мобильных приложений. К 20 сентября прошлого года мои приложения стали приносить свыше $3,000 ежедневно, причем большая часть дохода приходилась на iOS. Но буквально на следующий день Apple удалила все мои приложения из App Store и заблокировала мой аккаунт.
Я пытался оспорить это решение, подавал апелляции, предоставлял доказательства, скриншоты и даже направил досудебную претензию, однако ответа практически не последовало. Теперь я подал иск против Apple, и доступ к рынку iOS для меня сейчас закрыт.
Не хочу жаловаться, скорее, хочу поделиться своим опытом о том, как простые идеи помогли мне достичь значительного успеха. Надеюсь, кто-то найдет эту информацию полезной и сможет избежать тех ошибок, которые допустил я.
📌 Читать тред
@mobdevelop
🤮4🔥2💩2❤1👍1🤡1
🔥 Почему UGC-креативы — лучший выбор для продвижения приложений 🔥
UGC-креативы — те самые ролики, где вместо дорогих продакшн-сцен юзер видит реальную жизнь, а вы получаете больше дешевых триалов и реальный прирост установок. Отличный способ масштабировать user acquisition и попасть в сердечко аудитории!
🔥 В JOY ADS мы создаем UGC-креативы для мобильных апок — от гейминга до финтеха — в 25+ странах, успешно работая с YanGo, inDrive и Axlebolt и другими топ брендами.
Мы берем на себя все: от подбора креаторов до монтажа, от сценариев до ресайзов для разных платформ.
Наши кейсы тут
Почему бы не добавить UGC-креативы в вашу кампанию в TikTok, Meta, Google Ads, VK или РСЯ?
🎁Пиши @LeonelaJoy и забирай бесплатную консультацию по вашей вертикали + 10% скидку на первый UGC-запуск 🎏
Перешли этот пост своему UA-менеджеру — и в новом году тебя будут ждатьнизкий CPA, высокий ROAS и бесконечный поток инсталов!
UGC-креативы — те самые ролики, где вместо дорогих продакшн-сцен юзер видит реальную жизнь, а вы получаете больше дешевых триалов и реальный прирост установок. Отличный способ масштабировать user acquisition и попасть в сердечко аудитории!
Мы берем на себя все: от подбора креаторов до монтажа, от сценариев до ресайзов для разных платформ.
Наши кейсы тут
Почему бы не добавить UGC-креативы в вашу кампанию в TikTok, Meta, Google Ads, VK или РСЯ?
🎁Пиши @LeonelaJoy и забирай бесплатную консультацию по вашей вертикали + 10% скидку на первый UGC-запуск 🎏
Перешли этот пост своему UA-менеджеру — и в новом году тебя будут ждать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🍏 fileprivate vs private
🔹 Свойство fileprivate может быть прочитано в любом месте того же файла Swift, но не за его пределами.
🔹 Свойство private можно прочитать только внутри типа, в котором оно было объявлено (а также в расширениях этого типа в том же файле).
Подробнее о private и fileprivate здесь.
#Swift #iOS
🔹 Свойство fileprivate может быть прочитано в любом месте того же файла Swift, но не за его пределами.
🔹 Свойство private можно прочитать только внутри типа, в котором оно было объявлено (а также в расширениях этого типа в том же файле).
Подробнее о private и fileprivate здесь.
#Swift #iOS
Sarunw
Swift fileprivate vs private | Sarunw
Learn the difference between two similar access levels in Swift, private and fileprivate.
👍1
Sword — инъекция зависимостей во время компиляции
Это библиотека для инъекции зависимостей во время компиляции для Swift, вдохновленная Dagger.
Когда вы объявляете зависимости и указываете, как их удовлетворить, используя Swift Macros, Sword автоматически генерирует код инъекции зависимостей во время компиляции. Sword просматривает ваш код и проверяет графы зависимостей, гарантируя, что все зависимости объекта могут быть удовлетворены, что исключает ошибки в рантайме.
https://github.com/rockname/sword
Это библиотека для инъекции зависимостей во время компиляции для Swift, вдохновленная Dagger.
Когда вы объявляете зависимости и указываете, как их удовлетворить, используя Swift Macros, Sword автоматически генерирует код инъекции зависимостей во время компиляции. Sword просматривает ваш код и проверяет графы зависимостей, гарантируя, что все зависимости объекта могут быть удовлетворены, что исключает ошибки в рантайме.
https://github.com/rockname/sword
❤1
В бета-версии iOS 18.2 появилась опция менять дефолтные приложения. Можно устанавливать свой мессенджер, приложение для звонков, почту и менеджер паролей.
Пока iPhone видит только альтернативные клиенты почты. Мы заменили на Gmail — теперь если в любом приложении нажать на чей-то электронный адрес, открывается именно он.
В теории это значит, что Siri с Apple Intelligence будет полезной в поиске данных из сторонних приложений, а не только из iCloud. Но узнаем мы это только после релиза операционки.
Пока iPhone видит только альтернативные клиенты почты. Мы заменили на Gmail — теперь если в любом приложении нажать на чей-то электронный адрес, открывается именно он.
В теории это значит, что Siri с Apple Intelligence будет полезной в поиске данных из сторонних приложений, а не только из iCloud. Но узнаем мы это только после релиза операционки.
👍2🤯1
🌟 GitHubVerge — мощная библиотека для управления состоянием
Verge представляет собой высокоэффективную и масштабируемую библиотеку для управления состоянием приложений на Swift. Разработана с акцентом на реальные сценарии использования, она обеспечивает удобный и интуитивный подход к управлению состоянием приложения, избегая сложностей, связанных с действиями и редукторами. Verge совместим как с UIKit, так и со SwiftUI.
📌 Github
#ios #mobile
Verge представляет собой высокоэффективную и масштабируемую библиотеку для управления состоянием приложений на Swift. Разработана с акцентом на реальные сценарии использования, она обеспечивает удобный и интуитивный подход к управлению состоянием приложения, избегая сложностей, связанных с действиями и редукторами. Verge совместим как с UIKit, так и со SwiftUI.
📌 Github
#ios #mobile
🔥3👍2❤1🥰1
Forwarded from Machinelearning
Apple выпустила невероятно быстрые модели Core ML и приложение для iOS, позволяющее запускать их на iPhone! ⚡
Эти модели можно подключить к демо приложению, представленному в официальном репозитории MobileCLIP.
> S0 соответствует ViT-B/ 16 от OpenAI, но в 4,8 раза быстрее и в 2,8 раза меньше размером.
> S2 превосходит ViT-B/16 от SigLIP в 2,3 раза, при этом в 2,1 раза меньше по размеру, при этом используется для обучения в 3 раза меньше данных.
> MobileCLIP-B(LT) достигает 77,2%-ную точность обработки изображений, превосходя DFN, SigLIP и даже ViT-L/14@336 от OpenAI
conda create -n clipenv python=3.10
conda activate clipenv
pip install -e .
Пример использования:
Python
import torch
from PIL import Image
import mobileclip
model, _, preprocess = mobileclip.create_model_and_transforms('mobileclip_s0', pretrained='/path/to/mobileclip_s0.pt')
tokenizer = mobileclip.get_tokenizer('mobileclip_s0')
image = preprocess(Image.open("docs/fig_accuracy_latency.png").convert('RGB')).unsqueeze(0)
text = tokenizer(["a diagram", "a dog", "a cat"])
with torch.no_grad(), torch.cuda.amp.autocast():
image_features = model.encode_image(image)
text_features = model.encode_text(text)
image_features /= image_features.norm(dim=-1, keepdim=True)
text_features /= text_features.norm(dim=-1, keepdim=True)
text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
print("Label probs:", text_probs)
▪HF
▪Github
▪Результаты модели
@ai_machinelearning_big_data
#apple #coreml #mobile
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥1