This media is not supported in your browser
VIEW IN TELEGRAM
ComposeLevitation: эффект левитации для элементов UI
ComposeLevitation — это мощная библиотека Compose, которая предоставляет вам возможность легко создавать и настраивать эффекты левитации, добавляя интерактивный штрих к элементам пользовательского интерфейса. Умеет реагировать на жесты нажатия и перетаскивания, полностью настраиваема, можно сделать голографический эффект.
https://github.com/GIGAMOLE/ComposeLevitation
#Android
👉 @developer_mobila
ComposeLevitation — это мощная библиотека Compose, которая предоставляет вам возможность легко создавать и настраивать эффекты левитации, добавляя интерактивный штрих к элементам пользовательского интерфейса. Умеет реагировать на жесты нажатия и перетаскивания, полностью настраиваема, можно сделать голографический эффект.
https://github.com/GIGAMOLE/ComposeLevitation
#Android
👉 @developer_mobila
👍5
Упрощаем локализацию iOS-приложения со String Catalogs
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее ты их сможешь заработать. Это правило справедливо и в обратную сторону: клиент будет более охотно пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
https://habr.com/ru/articles/788614/
#ios
👉 @developer_mobila
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее ты их сможешь заработать. Это правило справедливо и в обратную сторону: клиент будет более охотно пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
https://habr.com/ru/articles/788614/
#ios
👉 @developer_mobila
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
GITHUBFittedSheets: Bottom Sheet для iOS
FittedSheets — реализация Bottom Sheet для iOS, представление View Controller-а внизу экрана. Предлагает произвольные размеры (автоматически подстраиваясь под содержание встроенного контроллера) и поддерживает скроллинг.
https://github.com/gordontucker/FittedSheets
#ios
👉 @developer_mobila
FittedSheets — реализация Bottom Sheet для iOS, представление View Controller-а внизу экрана. Предлагает произвольные размеры (автоматически подстраиваясь под содержание встроенного контроллера) и поддерживает скроллинг.
https://github.com/gordontucker/FittedSheets
#ios
👉 @developer_mobila
👍2
Лучшие практики в Jetpack Compose для новичков
Jetpack Compose, рекомендуемый современный инструментарий Android для создания нативного пользовательского интерфейса, может упростить и ускорить разработку пользовательского интерфейса. Тем не менее, он не так прост в освоении, особенно для тех, кто только начинает работать с декларативными фреймворками пользовательского интерфейса.
В этой статье я расскажу о лучших практиках, которым следует следовать при создании приложения с помощью Jetpack Compose. Эти практики особенно полезны для новичков, которые могут столкнуться с трудностями в улучшении производительности и читаемости кода своего приложения.
https://medium.com/@bhoomigadhiya/best-practices-in-jetpack-compose-for-beginners-949d2b90a1b1
#Android
👉 @developer_mobila
Jetpack Compose, рекомендуемый современный инструментарий Android для создания нативного пользовательского интерфейса, может упростить и ускорить разработку пользовательского интерфейса. Тем не менее, он не так прост в освоении, особенно для тех, кто только начинает работать с декларативными фреймворками пользовательского интерфейса.
В этой статье я расскажу о лучших практиках, которым следует следовать при создании приложения с помощью Jetpack Compose. Эти практики особенно полезны для новичков, которые могут столкнуться с трудностями в улучшении производительности и читаемости кода своего приложения.
https://medium.com/@bhoomigadhiya/best-practices-in-jetpack-compose-for-beginners-949d2b90a1b1
#Android
👉 @developer_mobila
👍3❤1
Drawer Navigation с помощью Material 3 в Jetpack Compose
В этом статье мы рассмотрим и реализуем базовую навигацию Drawer Navigation с помощью Material3.
https://proandroiddev.com/drawer-navigation-using-material-3-in-jetpack-compose-1bfd5f3f7ed4
#Android
👉 @developer_mobila
В этом статье мы рассмотрим и реализуем базовую навигацию Drawer Navigation с помощью Material3.
https://proandroiddev.com/drawer-navigation-using-material-3-in-jetpack-compose-1bfd5f3f7ed4
#Android
👉 @developer_mobila
👍3❤1
Phase Animations in iOS 17
В этом видео я хочу познакомить вас с новым методом phaseAnimator, который был представлен в iOS 17. Это мощный способ создать в приложении анимацию с состоянием, которая может меняться в течение определенной вами последовательности фаз.
0:00 Introduction
1:18 Chaining Animations
3:29 Basic PhaseAnimator
8:27 Enum based phases
15:17 PhaseAnimator Triggers
https://www.youtube.com/watch?v=CS2GLBiRMWE
#ios
👉 @developer_mobila
В этом видео я хочу познакомить вас с новым методом phaseAnimator, который был представлен в iOS 17. Это мощный способ создать в приложении анимацию с состоянием, которая может меняться в течение определенной вами последовательности фаз.
0:00 Introduction
1:18 Chaining Animations
3:29 Basic PhaseAnimator
8:27 Enum based phases
15:17 PhaseAnimator Triggers
https://www.youtube.com/watch?v=CS2GLBiRMWE
#ios
👉 @developer_mobila
YouTube
Phase Animations in iOS 17
In this video, I want to introduce you to the new phaseAnimator method that was introduced in iOS 17. It is a powerful way to create stateful animations in your app that can change over a sequence of phases that you define.
In addition, I will also introduce…
In addition, I will also introduce…
👍2
Побочные эффекты Jetpack Compose в подробностях
Цель побочных эффектов в Jetpack Compose — обеспечить возможность выполнения операций, не связанных с пользовательским интерфейсом, которые изменяют состояние приложения вне Composable-функции контролируемым и предсказуемым образом.
Jetpack Compose значительно упростил разработку пользовательских интерфейсов в Android, но все же важно понимать, как правильно управлять эффектами для повышения производительности. В этой статье мы рассмотрим три важные функции Composable, которые помогают нам эффективно управлять эффектами пользовательского интерфейса: SideEffect, LaunchedEffect и DisposableEffect.
https://medium.com/@mortitech/exploring-side-effects-in-compose-f2e8a8da946b
#Android
👉 @developer_mobila
Цель побочных эффектов в Jetpack Compose — обеспечить возможность выполнения операций, не связанных с пользовательским интерфейсом, которые изменяют состояние приложения вне Composable-функции контролируемым и предсказуемым образом.
Jetpack Compose значительно упростил разработку пользовательских интерфейсов в Android, но все же важно понимать, как правильно управлять эффектами для повышения производительности. В этой статье мы рассмотрим три важные функции Composable, которые помогают нам эффективно управлять эффектами пользовательского интерфейса: SideEffect, LaunchedEffect и DisposableEffect.
https://medium.com/@mortitech/exploring-side-effects-in-compose-f2e8a8da946b
#Android
👉 @developer_mobila
👍3
Осваиваем фреймворк Observation в Swift
В этой статье мы узнаем, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.
https://swiftwithmajid.com/2023/10/03/mastering-observable-framework-in-swift/
#ios
👉 @developer_mobila
В этой статье мы узнаем, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.
https://swiftwithmajid.com/2023/10/03/mastering-observable-framework-in-swift/
#ios
👉 @developer_mobila
👍1
Как ускорить сборку проекта и не остановить разработку
Доклад о том, как мы применили в iOS-проектах Тинькофф предкомпилированные зависимости в виде XCFramework с использованием CocoaPods, fastlane, GitLab CI и на примере проекта Тинькофф Бизнес ускорили холодную сборку до 2 раз.
0:00 Вступление
2:18 План доклада
3:37 «Тинькофф бизнес» в цифрах
6:59 XCFramework
11:46 Публикация XCFramework с CocoaPods
13:14 Builder
14:07 Deploy_xcframework
15:21 Alamofire:podspec
16:45 Transform_podspec
17:59 Интеграция
19:46 Семантическое версионирование
21:09 Обратная совместимость
26:46 Ограничения и советы
32:41 Практика
35:41 Готовый проект
37:40 Заключение
https://www.youtube.com/watch?v=EKKHAp0ZGBU
#ios
👉 @developer_mobila
Доклад о том, как мы применили в iOS-проектах Тинькофф предкомпилированные зависимости в виде XCFramework с использованием CocoaPods, fastlane, GitLab CI и на примере проекта Тинькофф Бизнес ускорили холодную сборку до 2 раз.
0:00 Вступление
2:18 План доклада
3:37 «Тинькофф бизнес» в цифрах
6:59 XCFramework
11:46 Публикация XCFramework с CocoaPods
13:14 Builder
14:07 Deploy_xcframework
15:21 Alamofire:podspec
16:45 Transform_podspec
17:59 Интеграция
19:46 Семантическое версионирование
21:09 Обратная совместимость
26:46 Ограничения и советы
32:41 Практика
35:41 Готовый проект
37:40 Заключение
https://www.youtube.com/watch?v=EKKHAp0ZGBU
#ios
👉 @developer_mobila
YouTube
Как ускорить сборку проекта и не остановить разработку — Сергей Ерохин, Тинькофф
Доклад о том, как мы применили в iOS-проектах Тинькофф предкомпилированные зависимости в виде XCFramework с использованием CocoaPods, fastlane, GitLab CI и на примере проекта Тинькофф Бизнес ускорили холодную сборку до 2 раз.
0:00 Вступление
2:18 План доклада…
0:00 Вступление
2:18 План доклада…
👍3
Как устроена логика навигации флоу в приложении Тинькофф
https://www.youtube.com/watch?v=NWuywNArj6M
#Android
👉 @developer_mobila
https://www.youtube.com/watch?v=NWuywNArj6M
#Android
👉 @developer_mobila
YouTube
Как устроена логика навигации флоу в приложении Тинькофф — Тимур Валиев, Тинькофф
Тимур рассказал, как мы сделали свой DSL для того, чтобы строить логику навигации в наших флоу в приложении Тинькофф.
#тинькофф #ит_фест #mobiledev
#тинькофф #ит_фест #mobiledev
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Siri Intents for WatchOS
Building custom intents for WatchOS apps: A step-by-step guide.
https://medium.com/simform-engineering/siri-intents-for-watchos-b45798950f2c
#ios
👉 @developer_mobila
Building custom intents for WatchOS apps: A step-by-step guide.
https://medium.com/simform-engineering/siri-intents-for-watchos-b45798950f2c
#ios
👉 @developer_mobila
👍2
Media is too big
VIEW IN TELEGRAM
Как создать пользовательский экран в SwiftUI
Имейте в виду, что это действительно работает в iOS 15! И хотя многие в комментариях хотят указать на более нативное решение, оно было представлено в iOS 16. Итак, это решение, которое также включает в себя довольно много настроек радиуса углов, цветов и многого другого, потому что вы также можете форкнуть это репо и редактировать его по своему усмотрению :]
https://github.com/fieldday-ai/Modals
#ios
👉 @developer_mobila
Имейте в виду, что это действительно работает в iOS 15! И хотя многие в комментариях хотят указать на более нативное решение, оно было представлено в iOS 16. Итак, это решение, которое также включает в себя довольно много настроек радиуса углов, цветов и многого другого, потому что вы также можете форкнуть это репо и редактировать его по своему усмотрению :]
https://github.com/fieldday-ai/Modals
#ios
👉 @developer_mobila
👍2
Screenshot testing in Compose
Тестирование - неотъемлемая часть любого проекта. Оно позволяет вам с уверенностью выпускать приложение, поддерживая высокий уровень стабильности и качества. Однако тестирование должно проводиться эффективно и обновляться каждый раз, когда в кодовой базе происходят изменения.
https://proandroiddev.com/screenshot-testing-in-compose-f8a7389a7e6
#Android
👉 @developer_mobila
Тестирование - неотъемлемая часть любого проекта. Оно позволяет вам с уверенностью выпускать приложение, поддерживая высокий уровень стабильности и качества. Однако тестирование должно проводиться эффективно и обновляться каждый раз, когда в кодовой базе происходят изменения.
https://proandroiddev.com/screenshot-testing-in-compose-f8a7389a7e6
#Android
👉 @developer_mobila
👍1
Поваренная книга SwiftUI: изображения и кнопки
SwiftUI позволяет невероятно просто добавлять изображения и кнопки в пользовательский интерфейс.
Кнопки необходимы для создания интерактивных элементов в пользовательском интерфейсе. В SwiftUI кнопки создаются с помощью представления Button.
https://www.kodeco.com/books/swiftui-cookbook/v1.0/chapters/6-add-a-button-in-swiftui
#ios
👉 @developer_mobila
SwiftUI позволяет невероятно просто добавлять изображения и кнопки в пользовательский интерфейс.
Кнопки необходимы для создания интерактивных элементов в пользовательском интерфейсе. В SwiftUI кнопки создаются с помощью представления Button.
https://www.kodeco.com/books/swiftui-cookbook/v1.0/chapters/6-add-a-button-in-swiftui
#ios
👉 @developer_mobila
👍1
ЗАБУДЬ про UITableView
DiffableDataSource упростит код, отобразит таблицу на основе сделанных снимков и анимирует ячейки
https://www.youtube.com/watch?v=z4vINGVv294
#ios
👉 @developer_mobila
DiffableDataSource упростит код, отобразит таблицу на основе сделанных снимков и анимирует ячейки
https://www.youtube.com/watch?v=z4vINGVv294
#ios
👉 @developer_mobila
YouTube
DiffableDataSource: ЗАБУДЬ про DATASOURCE
Boosty-аккаунт для iOS разработчика:
https://boosty.to/cmdbcmdr
- Ответы на вопросы с собеседований
- Спринт "Координатор"
- Курс "Combine c нуля"
- Курс "iOS разработчик с нуля": Базовые знания
- Принципы SOLID
- Решение задач с CodeWars/LeetCode
Полное…
https://boosty.to/cmdbcmdr
- Ответы на вопросы с собеседований
- Спринт "Координатор"
- Курс "Combine c нуля"
- Курс "iOS разработчик с нуля": Базовые знания
- Принципы SOLID
- Решение задач с CodeWars/LeetCode
Полное…
👍1
Тестирование Android PagingSource
В этой статье я расскажу о том, как протестировать PagingSource.
Зачем тестировать
Тестирование очень важно в разработке. Тестовый код делает вашу кодовую базу стабильной. С тестовым кодом рефакторинг становится проще, потому что после рефакторинга, если все тесты пройдены, вы можете быть уверены, что не создали новую ошибку.
https://ayousuf.hashnode.dev/testing-android-pagingsource
#Android
👉 @developer_mobila
В этой статье я расскажу о том, как протестировать PagingSource.
Зачем тестировать
Тестирование очень важно в разработке. Тестовый код делает вашу кодовую базу стабильной. С тестовым кодом рефакторинг становится проще, потому что после рефакторинга, если все тесты пройдены, вы можете быть уверены, что не создали новую ошибку.
https://ayousuf.hashnode.dev/testing-android-pagingsource
#Android
👉 @developer_mobila
👍1
Force Update Mechanism
В постоянно развивающемся ландшафте мобильных приложений обновление приложения - не просто лучшая практика, это часто необходимость. Будь то критический патч безопасности, выпуск новой функции или простое исправление ошибки, обеспечение того, что ваши пользователи работают с последней версией приложения, может иметь решающее значение как для удобства пользователей, так и для безопасности. Именно здесь в игру вступает концепция "принудительного обновления". Механизм принудительного обновления позволяет заставить пользователей обновить приложение, чтобы продолжить его использование. Это особенно полезно для критических обновлений, которые вы не можете позволить пользователям пропустить.
https://www.manu.show/2023-09-29-force-update-mechanism/
#ios
👉 @developer_mobila
В постоянно развивающемся ландшафте мобильных приложений обновление приложения - не просто лучшая практика, это часто необходимость. Будь то критический патч безопасности, выпуск новой функции или простое исправление ошибки, обеспечение того, что ваши пользователи работают с последней версией приложения, может иметь решающее значение как для удобства пользователей, так и для безопасности. Именно здесь в игру вступает концепция "принудительного обновления". Механизм принудительного обновления позволяет заставить пользователей обновить приложение, чтобы продолжить его использование. Это особенно полезно для критических обновлений, которые вы не можете позволить пользователям пропустить.
https://www.manu.show/2023-09-29-force-update-mechanism/
#ios
👉 @developer_mobila
manu.show
Force Update Mechanism
Implementing a basic force update mechanism in your SwiftUI app
👍2
Rise of Jetpack Media 3 — революция в воспроизведении мультимедиа на Android
https://proandroiddev.com/rise-of-jetpack-media-3-revolutionising-media-playback-on-android-45686bdb648
#Android
👉 @developer_mobila
https://proandroiddev.com/rise-of-jetpack-media-3-revolutionising-media-playback-on-android-45686bdb648
#Android
👉 @developer_mobila
Построение архитектуры дизайна системы Android для эффективной загрузки изображений с помощью чистой архитектуры
В постоянно развивающемся мире разработки мобильных приложений создание хорошо проработанного системного дизайна Android является залогом успеха. В этой статье мы расскажем вам о том, как построить надежную архитектуру дизайна системы Android для эффективной загрузки изображений, используя принципы чистой архитектуры. Мы обсудим, почему хорошо спроектированная система жизненно важна и что может пойти не так, если в вашем проекте отсутствует такая архитектура. Мы также приведем реальные примеры проектов с плохой архитектурой и их последствия.
https://murainoyakubu.medium.com/android-system-design-architecture-on-a-real-life-senario-d35f4e203b51
#Android
👉 @developer_mobila
В постоянно развивающемся мире разработки мобильных приложений создание хорошо проработанного системного дизайна Android является залогом успеха. В этой статье мы расскажем вам о том, как построить надежную архитектуру дизайна системы Android для эффективной загрузки изображений, используя принципы чистой архитектуры. Мы обсудим, почему хорошо спроектированная система жизненно важна и что может пойти не так, если в вашем проекте отсутствует такая архитектура. Мы также приведем реальные примеры проектов с плохой архитектурой и их последствия.
https://murainoyakubu.medium.com/android-system-design-architecture-on-a-real-life-senario-d35f4e203b51
#Android
👉 @developer_mobila
👍1
🕹️ apk.sh
Упрощает реверс инжиниринг приложений для Android, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, восстановление и исправление APK.
Особенности
– патчинг APK для загрузки frida-gadget.so при запуске
– поддержка пакетов приложений/разделенных APK
– разборка ресурсов до почти оригинального вида с помощью apktool
– восстановление декодированных ресурсов обратно в бинарный APK/JAR с помощью apktool
– подпись apk с помощью apksigner
– поддержка нескольких архитектур (arm, arm64, x86, x86_64)
– не требуется рутованное Android-устройство
https://github.com/ax/apk.sh
#Android
👉 @developer_mobila
Упрощает реверс инжиниринг приложений для Android, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, восстановление и исправление APK.
Особенности
– патчинг APK для загрузки frida-gadget.so при запуске
– поддержка пакетов приложений/разделенных APK
– разборка ресурсов до почти оригинального вида с помощью apktool
– восстановление декодированных ресурсов обратно в бинарный APK/JAR с помощью apktool
– подпись apk с помощью apksigner
– поддержка нескольких архитектур (arm, arm64, x86, x86_64)
– не требуется рутованное Android-устройство
https://github.com/ax/apk.sh
#Android
👉 @developer_mobila
GitHub
GitHub - ax/apk.sh: Makes reverse engineering Android apps easier, automating repetitive tasks like pulling, decoding, rebuilding…
Makes reverse engineering Android apps easier, automating repetitive tasks like pulling, decoding, rebuilding and patching an APK. - ax/apk.sh
👍2🔥1
Понимаем @ discardableResult в Swift
Атрибут
Swift известен тем, что в нем большое внимание уделяется безопасности типов и читаемости кода. Одним из свойств, соответствующих этим принципам, является атрибут
https://medium.com/mobile-app-development-publication/understanding-discardable-results-in-swift-1bb193738f25
#ios
👉 @developer_mobila
Атрибут
@discardableResult в Swift является ценным инструментом для улучшения читаемости кода и управления функциями, возвращающими значения, которые не всегда нужно использовать.Swift известен тем, что в нем большое внимание уделяется безопасности типов и читаемости кода. Одним из свойств, соответствующих этим принципам, является атрибут
@discardableResult. Этот атрибут позволяет пометить возвращаемое значение функции как «отбрасываемое» (discardable), что означает возможность игнорировать возвращаемое значение, не выдавая предупреждения компилятора. В этой статье мы рассмотрим, что такое отбрасываемый результат, почему он полезен и как эффективно использовать его в Swift.https://medium.com/mobile-app-development-publication/understanding-discardable-results-in-swift-1bb193738f25
#ios
👉 @developer_mobila
👍3