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

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

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

@JavaScript_testit- js тесты

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

@ai_machinelearning_big_data - ml
加入频道
🔝Топ 5 крутых плагинов для Android Studio

1. Kotlin Fill Class — крутейший плагин, который делает разработку намного более приятной и быстрой. С его помощью вы можете заполнять классы и функции на лету.

2. ADB Idea — это полезное дополнение к ADB, которое вы можете запустить с помощью всплывающего окна.

3. Android Drawable Preview — с помощью этого крутого плагина вы больше не заблудитесь, так как в нем отображаются небольшие предварительные изображения всех значков внутри каталога.

4. Key Promotex X — инструмент, который поможет вам освоить основные сочетания клавиш во время работы. Когда вы нажимаете мышью на кнопку в среде IDE, Key Promoter X показывает сочетание клавиш, которое вы должны были использовать вместо этого.

5. IdeaVim — это Vim в Android Studio. Вы можете настроить его по своему вкусу с помощью файла .ideavimrc в вашем домашнем каталоге, как если бы вы использовали .vimrc.

@mobdevelop
👍121🔥1
🍏 Apple опубликовал новую открытую библиотеку гомоморфного шифрования

Компания Apple объявила о создании открытой библиотеки с реализацией методов гомоморфного шифрования на языке Swift.

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

Код проекта распространяется под лицензией Apache 2.0. Реализация основана на схеме BFV (Brakerski-Fan-Vercauteren), которая, в свою очередь, основана на задаче обучения с ошибками в кольце (RLWE), защищённой от криптоанализа квантовыми компьютерами. Низкоуровневые примитивы для шифрования используются из библиотеки Swift Crypto.

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

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

В инфраструктуре Apple реализованная система применяется для конфиденциальной проверки "Caller ID" - пользователь передаёт на сервер Apple зашифрованный номер телефона, а сервер, без его расшифровки, проверяет наличие номера в чёрных списках для блокирования спама или базах данных с информацией о принадлежности номеров. В отличие от типовых схем конфиденциальной проверки ключа без его раскрытия серверу, в которых сервер передаёт клиенту всю БД, а клиент осуществляет проверку на своей стороне, применение гомоморфного шифрования позволяет ограничиться передачей на сторону клиента лишь небольшой порции метаданных.

Подобный подход позволяет организовать проверку в очень больших БД, которые не могут быть переданы на сторону клиента. Код серверной части для организации подобных проверок опубликован под лицензией Apache 2.0.

Github

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123💋2
Убираем M из MVVM в SwiftUI

Я так часто сталкиваюсь с этим вопросом, что наконец-то хочу написать о нем. Это не будет длинный пост об архитектуре iOS-приложений, и это даже не будет провокационный быстрый комментарий. Это просто то, как я создаю iOS-приложения в эти дни, особенно Ice Cubes, мой SwiftUI клиент Mastodon с открытым исходным кодом. Если вы достаточно хорошо инкапсулируете свой код, ваши View — это просто представления состояний, не меньше и не больше.

https://blog.stackademic.com/removing-the-m-from-mvvm-with-swiftui-a58b239e9e3e

#ios
👍83👎1🔥1
Forwarded from Java
🖥 Курс по основам программирования на Kotlin

Kotlin — современный язык программирования от Google, который упрощает процесс разработки и повышает безопасность кода.

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

Курс

#java #курс

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2🍓1
Disk — хранение структур, изображений и данных

Disk — это крутая мощная библиотека управления файлами, созданная с учетом рекомендаций Apple по хранению данных в iOS. Disk максимально эффективно использует новый протокол Codable, представленный в Swift 4, и дает вам возможность сохранять структуры, не заботясь о кодировании/декодировании. Disk также помогает сохранять изображения и другие типы данных на диск всего одной строкой кода.

Github
👍2
Задача с LeetCode по Swift

Описание:
Дана строка s. Вернуть длину самой длинной подстроки, которая содержит не более двух различных символов.

Пример:


Input: s = «eceba»
Output: 3
Explanation: The substring is «ece» which its length is 3.


Алгоритм:

1. Вернуть N, если длина строки N меньше 3.

2. Установить оба указателя в начало строки: left = 0 и right = 0, и инициализировать максимальную длину подстроки max_len = 2.

3. Пока указатель right меньше N: Если хеш-таблица содержит менее 3 различных символов, добавить текущий символ s[right] в хеш-таблицу и сдвинуть указатель right вправо.
Если хеш-таблица содержит 3 различных символа, удалить самый левый символ из хеш-таблицы и сдвинуть указатель left так, чтобы скользящее окно содержало только 2 различных символа. Обновить max_len.

Решение:


func lengthOfLongestSubstringTwoDistinct(_ s: String) -> Int {
let n = s.count
if n < 3 { return n }
let chars = Array(s)
var left = 0
var right = 0

var hashmap = [Character: Int]()

var max_len = 2

while right < n {
hashmap[chars[right]] = right
right += 1
if hashmap.count == 3 {
let del_idx = hashmap.values.min()!
hashmap.removeValue(forKey: chars[del_idx])
left = del_idx + 1
}

max_len = max(max_len, right - left)
}

return max_len
}
👍3
Шпаргалка по релизу мобильного приложения

#шпаргалка #mobidev
🔥11👍4
30 проектов и библиотек для Flutter-разработчиков

В этой статье — подборка полезных репозиториев GitHub и проектов, которые могут помочь начинающим в изучении Flutter, а более опытным разработчикам найти полезные библиотеки для проектов:

https://www.theinsaneapp.com/2023/03/best-flutter-github-repositories.html

#flutter
👍61👎1
OTP Helper — автоматическое получение кодов из уведомлений

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

Ссылка на GitHub 🔗

#библиотека #github
📺 Я победил замедление YouTube

Ухудшение работы YouTube стало поистине трагическим событием, которое прибило почти все загрузчики видео, но нашелся легальный способ улучшить ситуацию!

⚙️ Как починить оборудование Google, не привлекая внимание санитаров.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как использовать файлы EditorConfig в Xcode

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

В Xcode 16 добавлена поддержка файлов EditorConfig, которые позволяют программно определять настройки редактора Xcode для каждого проекта.

📖 В этой статье вы узнаете, как настроить файлы EditorConfig в Xcode и какие настройки поддерживаются на данный момент.
1
Компания Apple представила язык программирования Swift 6.0

Компания Apple опубликовала релиз языка программирования Swift 6.0. Официальные сборки подготовлены для Linux (Ubuntu 20.04/22.04/24.04, Debian 12, Fedora 39, Amazon Linux 2, RHEL 9), Windows 10 и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.

Язык Swift сочетает лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти, контроля переполнения переменных и массивов, защитой от использования неинициализированных переменных и блокированием доступа к памяти после её освобождения, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.

Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, который в проведённых тестах демонстрирует производительность на 30% опережающую код на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий инструменты для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

Ключевые изменения в новой версии:

- Добавлен новый режим изоляции данных, предоставляющий на уровне компилятора защиту от состояний гонки, возникающих при обращении к данным из параллельно выполняемых потоков. При включении режима компилятор выполняет проверку безопасного использования или наличия должных блокировок данных, обрабатываемых параллельно выполняемым кодом.
Предложен экспериментальный урезанный вариант языка Embedded Swift, предназначенный для создания приложений для встраиваемых систем и микроконтроллеров. В компиляторе сборка в новом режиме реализована для целевых платформ ARM и RISC-V, и позволяет генерировать более компактные, потребляющие меньше памяти и обособленные исполняемые файлы, не привязанные к runtime.

- Предложена новая библиотека Synchronization, предоставляющая низкоуровневый API для организации параллельного выполнения кода, атомарного выполнения операций и использования мьютексов.
Добавлена поддержка типизированных исключений (Typed throws), дающих возможность указать тип возвращаемой ошибки на этапе определения функции. Например, ниже показано определение функции, которая либо возвращает экземпляр Record либо ошибку с типом ParseError:

func parseRecord(from string: String) throws(ParseError) -> Record {
// ...
}

- Предоставлена возможность использования обобщённого кода (generic), который может одновременно работать как с копируемыми, так и с некопируемыми типами (некопируемые типы могут иметь только одного владельца, что позволяет добиться увеличения производительности за счёт замены связанных с владением проверок на запрет копирования ресурсов).

- Расширена переносимость с кодом на языке C++ в таких областях, как типы, допускающие только перемещение, виртуальные методы, аргументы по умолчанию и дополнительные типы стандартной библиотеки (например, std::map и std::optional).

- Реализованы знаковые и беззнаковые 128-разрядные целые типы.

- Библиотека Foundation унифицирована для всех поддерживаемых платформ (Linux, Windows, macOS) и может применяться в переносимых приложениях. На языке Swift переписаны реализации типов JSONDecoder, URL, Calendar, FileManager и ProcessInfo.

@mobdevelop
🔥43👍1
Как создать гистограмму с помощью Swift Charts

На WWDC 22 Apple представила Swift Charts, фреймворк, позволяющий визуализировать данные в виде гистограмм. До его появления нам приходилось подключать всевозможные сторонние решения для построения графиков в SwiftUI. Визуализация данных с помощью аналогичного декларативного синтаксиса в SwiftUI — это просто фантастика.

Гистограмма — это всего лишь один из доступных вариантов визуализации данных. В целом, многие из методов, о которых вы сегодня узнаете, применимы и к другим графикам. Фактически, вы можете заменить всего один элемент, чтобы перейти от гистограммы к линейной диаграмме. Давайте погрузимся в работу!

https://www.avanderlee.com/swift-charts/bar-chart-creation-using-swift-charts/

#ios
👍1
Создаем гистограмму с помощью Swift Charts

На WWDC 22 Apple представила Swift Charts, фреймворк, позволяющий визуализировать данные в виде гистограмм. До его появления нам приходилось подключать всевозможные сторонние решения для построения графиков в SwiftUI. Визуализация данных с помощью аналогичного декларативного синтаксиса в SwiftUI — это просто фантастика.

Гистограмма — это всего лишь один из доступных вариантов визуализации данных. В целом, многие из методов, о которых вы сегодня узнаете, применимы и к другим графикам. Фактически, вы можете заменить всего один элемент, чтобы перейти от гистограммы к линейной диаграмме. Давайте погрузимся в работу!

https://www.avanderlee.com/swift-charts/bar-chart-creation-using-swift-charts/
😈Большой гайд по фаззингу приложений: инструменты, методы и рекомендации

Фаззинг — это автоматизированная или полуавтоматизированная проверка того, как поведёт себя программа при обработке случайных (в том числе некорректных) входных данных. Фаззинг позволяет обнаружить ошибки в программном обеспечении (ПО) как на стадии разработки, так и в процессе его использования.

Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72💯1
👩‍💻 React Native Splash Screen — поддержка разных тем

💡Splash screen — это первый экран, который видят пользователи перед загрузкой в ​​основное приложение. Этот экран, пожалуй, лучший способ сделать название вашего приложения, и в целом, его название, более запоминающимся

🌟 В этой статье авторы создают красивую заставку для мобильных приложений с поддержкой разных тем (например, светлая и темная)

🔗 Ссылка: *клик*

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🥰1💯1
🍏 Пишем умные приложения с использованием Apple AI Models

У легендарного Ray Wenderlich вышел небольшой курс, в котором рассматривается машинное обучение на устройстве с использованием мощных инструментов Apple.

В начале курса вы разберетесь в таких фреймворках, как Vision, Translation, прежде чем начать разрабатывать свои модели, настраивая готовые модели Apple.

📖 Сам курс по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
🖥 HotReloading for Swift, Objective-C & C++!

HotReloading представляет собой реализацию технологии InjectionIII в формате Swift Package, поддерживающую языки Swift, Objective-C и C++.

🔥InjectionIII — «горячая перезагрузка» для Swift, позволяет обновлять реализацию функций и любых методов классов, структур или перечислений мгновенно в симуляторе iOS без необходимости полной пересборки или перезапуска приложения. Это экономит разработчику значительное количество времени на доработку кода или итерации над дизайном. По сути, это превращает Xcode из «редактора исходного кода» в «редактор программы», где изменения исходного кода не просто сохраняются на диск, а непосредственно отображаются в вашей работающей программе.

Этот инструмент позволяет мгновенно увидеть и понять, как функционирует ваш код. Поддерживает интеграцию с редактором кода VSCode.

🖥 GitHub

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥2❤‍🔥1
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/python_job_interview
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Linux: t.me/linuxacademiya
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/golang_interview
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc


💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 react-native-bootsplash — библиотека для добавления и настройки экранов загрузки (splash screens) в приложениях React Native. Она позволяет легко настроить отображение загрузочного экрана при запуске приложения и скрыть его, когда основная часть приложения готова к отображению

🌟 Библиотека поддерживает как платформы iOS, так и Android, предлагая кастомизацию через изображения и цвета для создания стильного и плавного опыта для пользователей при запуске приложений

🔐 Лицензия: MIT

▪️Github

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥2