iOS
Простая история сравнения строк для тех, кто не помнит про непечатные символы:
• Строки в Swift выглядят одинаково, но не являются таковыми?
• Вопросы с собеседований: что такое Семафор в Swift
• Выпуск Apple Vision Pro состоится «где-то в марте»
• AcknowList: список лицензий
• The alternative to SwiftUI's Spacer
• Animating numeric text in SwiftUI with the Content Transition modifier
• Typealias in Swift: 3 use cases
• Destroy dependency injection in Swift
• Deploy CoreML Models on the Server with Vapor
#ios
Простая история сравнения строк для тех, кто не помнит про непечатные символы:
• Строки в Swift выглядят одинаково, но не являются таковыми?
• Вопросы с собеседований: что такое Семафор в Swift
• Выпуск Apple Vision Pro состоится «где-то в марте»
• AcknowList: список лицензий
• The alternative to SwiftUI's Spacer
• Animating numeric text in SwiftUI with the Content Transition modifier
• Typealias in Swift: 3 use cases
• Destroy dependency injection in Swift
• Deploy CoreML Models on the Server with Vapor
#ios
AppTractor
Строки в Swift выглядят одинаково, но не являются таковыми?
Две одинаковые строки отличались друг от друга. Как такое может быть?
🙈4❤1🔥1
Android
• Пишем Kotlin DSL для графов навигации в домашних условиях
• Статический анализатор Ktlint для Kotlin в Android
• Custom Savers
• Java Memory Leaks: Detection and Prevention
• Making TDD a Habit in Android Development
• How to Add Content Descriptions in Compose
• Migration from Kapt to KSP
• ViewModel: Events as State are an Antipattern
#android
• Пишем Kotlin DSL для графов навигации в домашних условиях
• Статический анализатор Ktlint для Kotlin в Android
• Custom Savers
• Java Memory Leaks: Detection and Prevention
• Making TDD a Habit in Android Development
• How to Add Content Descriptions in Compose
• Migration from Kapt to KSP
• ViewModel: Events as State are an Antipattern
#android
Хабр
Пишем Kotlin DSL для графов навигации в домашних условиях
Всем привет! Я Тимур, лид одной из android-команд. Больше трех лет работаю в Тинькофф, все это время был в привлечении и занимался флоу получения разных банковских продуктов. Расскажу, как мы сделали...
👍7❤1🤡1
В ходе судебного разбирательства Epic против Google выяснилась забавная вещь про Spotify. Оказывается, даже распространяясь через Play, Spotify платит 0% при своем биллинге и 4% при биллинге магазина. Напомню, что для всех остальных разработчиков Google на 4% снижает свой процент и в лучшем случае это будет 11%. Сам Google объясняет это тем, что "если Spotify не будет нормально работать в сервисах Play и основных сервисах, люди не будут покупать телефоны на базе Android". То есть это своего рода инвестиция в Android. Во всех остальных разработчиков, видимо, инвестировать не надо, надо, чтобы они сбивались в стаи по 21 человеку.
Разработка
• Прежде чем пытаться что-то сделать, убедитесь, что вы можете сделать то, что ничего не делает
• Умный код — это, вероятно, худший код, который вы можете написать
• How to shuffle songs?
• GameMaker to be free for non-commercial purposes and have one-time fee license
• Goodbye, Clean Code
Маркетинг
• Секретная сделка Google позволила Spotify полностью обойти плату за пользование Google Play
Кроссплатформа
• Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 1)
• Top 12 Flutter Open source projects
• Flutter Interview Questions and Answers: Top 30 for Pros!
• Flutter Responsive UI : Crafting Dynamic Layouts for Every Device
• Flutter Networking Tutorial: Getting Started
Разработка
• Прежде чем пытаться что-то сделать, убедитесь, что вы можете сделать то, что ничего не делает
• Умный код — это, вероятно, худший код, который вы можете написать
• How to shuffle songs?
• GameMaker to be free for non-commercial purposes and have one-time fee license
• Goodbye, Clean Code
Маркетинг
• Секретная сделка Google позволила Spotify полностью обойти плату за пользование Google Play
Кроссплатформа
• Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 1)
• Top 12 Flutter Open source projects
• Flutter Interview Questions and Answers: Top 30 for Pros!
• Flutter Responsive UI : Crafting Dynamic Layouts for Every Device
• Flutter Networking Tutorial: Getting Started
AppTractor
Прежде чем пытаться что-то сделать, убедитесь, что вы можете сделать то, что ничего не делает
Начните с того, что ничего не делает.
❤7🤡4👍3
iOS
• Отладка представлений SwiftUI: что вызывает изменения?
• enum Guru: Swift enum in depth
• Using Observation framework outside of SwiftUI
• Scoped animations in SwiftUI
• SwiftUI SplitView Compact Column Control
• Reference types and Retain cycles (Weak vs. Unowned)
• Swift UITableView Prefetching: A Guide to Smoother Scrolling
#ios
• Отладка представлений SwiftUI: что вызывает изменения?
• enum Guru: Swift enum in depth
• Using Observation framework outside of SwiftUI
• Scoped animations in SwiftUI
• SwiftUI SplitView Compact Column Control
• Reference types and Retain cycles (Weak vs. Unowned)
• Swift UITableView Prefetching: A Guide to Smoother Scrolling
#ios
AppTractor
Отладка представлений SwiftUI: что вызывает изменения?
Представления SwiftUI с большим количеством триггеров перерисовки могут стать проблемой.
🔥3❤1🙈1
Android
• Новые API для адаптивных макетов в Jetpack Compose
• Exposed: SQL-фреймворк для Kotlin
• Kotlin под капотом: нюансы использования аннотаций
• Top 10 Android Memory Leak Causes
• Mastering Camera2 API in Kotlin: A Comprehensive Guide with Examples
• Mastering Kotlin’s Invoke Operator: Simplifying Code and Enhancing Readability
#android
• Новые API для адаптивных макетов в Jetpack Compose
• Exposed: SQL-фреймворк для Kotlin
• Kotlin под капотом: нюансы использования аннотаций
• Top 10 Android Memory Leak Causes
• Mastering Camera2 API in Kotlin: A Comprehensive Guide with Examples
• Mastering Kotlin’s Invoke Operator: Simplifying Code and Enhancing Readability
#android
AppTractor
Новые API для адаптивных макетов в Jetpack Compose
Мы хотим упростить для вас принятие решений по компоновке, но в то же время предоставить гибкость в выборе пользовательского дизайна и поведения.
❤3🤡1
История с прокидыванием сообщений в iMessage с Android закончила не успев начаться. Напомню, что идея состояла в аренде Mac-ов, к которым можно было коннектится и общаться в мессенджере Apple. С самого начала затея выглядела так себя, а сейчас приложение Nothing Chats выпилили из Google Play, а Sunbird вчера закрылся сам. Выяснилось, что, как и ожидалось, end-to-end шифрования там нет, а файлы вообще хранятся в Firebase 🙈 В следующем году Apple реализует поддержку RCS, что более-менее улучшит обмен сообщениями, а в остальном остается только надеяться на суд, который откроет iMessage.
Разработка
• GameMaker отменил подписку для инди-разработчиков
• Опубликован курс «Генеративный ИИ для начинающих» от Microsoft
• Лев Толстой о мобильной разработке: Искусство написания приложений
• How DoorDash Standardized and Improved Microservices Caching
• The Architecture Of Serverless Data Systems
• A solo game developer generated over $150,000 in 8 months from his game, with only 2 Reddit posts
Маркетинг
• Компания Sunbird закрыла свое приложение для обмена сообщениями с iMessage
• Good games don’t die – Can legacy titles save the mobile game industry?
Кроссплатформа
• 10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году
• Flutter 3.16: обзор обновления фреймворка с комментариями разработчиков Surf
• Как мы отказались от styled-components в React Native приложениях
• Memory Management in Flutter: Best Practices and Pitfalls
• Utilizing JS Library for Flutter Web
• Native UI Components in React
Разработка
• GameMaker отменил подписку для инди-разработчиков
• Опубликован курс «Генеративный ИИ для начинающих» от Microsoft
• Лев Толстой о мобильной разработке: Искусство написания приложений
• How DoorDash Standardized and Improved Microservices Caching
• The Architecture Of Serverless Data Systems
• A solo game developer generated over $150,000 in 8 months from his game, with only 2 Reddit posts
Маркетинг
• Компания Sunbird закрыла свое приложение для обмена сообщениями с iMessage
• Good games don’t die – Can legacy titles save the mobile game industry?
Кроссплатформа
• 10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году
• Flutter 3.16: обзор обновления фреймворка с комментариями разработчиков Surf
• Как мы отказались от styled-components в React Native приложениях
• Memory Management in Flutter: Best Practices and Pitfalls
• Utilizing JS Library for Flutter Web
• Native UI Components in React
AppTractor
GameMaker отменил подписку для инди-разработчиков
Рассел Кей, глава GameMaker, заявил, что эти изменения - способ компании выразить благодарность пользователям, объяснив, что с 2021 года база пользователей GameMaker увеличилась в три раза.
❤2
Где остановится популярность Kotlin?
Kotlin растет.
1. Два месяца назад Kotlin вошел в Топ-20 индекса TIOBE. А в этом месяце он прибавил 0.17% и с 1.15% переместился на 3 позиции - с 18 на 15 место.
2. Первая волна популярности Kotlin пришлась на 2017 год, когда Google объявила о “первоклассной” поддержке Kotlin на Android. Тогда популярность Kotlin в индексе TIOBE достигла почти 1%.
3. Интересный вопрос - где остановится Kotlin? Kotlin полностью интероперабелен с Java, являясь, таким образом, прямым конкурентом этого языка во всех областях.
4. “Определенно, Kotlin может занять место в первой десятке. Сможет ли он стать частью "большой четверки" - вопрос, на который еще предстоит ответить”, - написал Пол Янсен, генеральный директор TIOBE Software.
И что: осталось только iOS-разработку завоевать и больше "ничего не будет. Ни кино, ни театра, ни книг, ни газет – один сплошной Kotlin" (C).
Kotlin растет.
1. Два месяца назад Kotlin вошел в Топ-20 индекса TIOBE. А в этом месяце он прибавил 0.17% и с 1.15% переместился на 3 позиции - с 18 на 15 место.
2. Первая волна популярности Kotlin пришлась на 2017 год, когда Google объявила о “первоклассной” поддержке Kotlin на Android. Тогда популярность Kotlin в индексе TIOBE достигла почти 1%.
3. Интересный вопрос - где остановится Kotlin? Kotlin полностью интероперабелен с Java, являясь, таким образом, прямым конкурентом этого языка во всех областях.
4. “Определенно, Kotlin может занять место в первой десятке. Сможет ли он стать частью "большой четверки" - вопрос, на который еще предстоит ответить”, - написал Пол Янсен, генеральный директор TIOBE Software.
И что: осталось только iOS-разработку завоевать и больше "ничего не будет. Ни кино, ни театра, ни книг, ни газет – один сплошной Kotlin" (C).
🤡16😁11❤4
Какие ваши отношения с Kotlin?
Anonymous Poll
50%
Знаю, практикую
9%
Знаю, но не практикую
5%
Только учу
7%
Намереваюсь выучить
16%
Не знаю и знать не хочу
13%
Посмотреть р̶е̶т̶р̶о̶г̶р̶а̶д̶о̶в̶
❤4
Forwarded from IT Insights
Tesla выложила в open source всю конструкцию и дизайн оригинального Roadster
Компания Tesla выложила в открытый доступ все конструкторские и инженерные разработки оригинального автомобиля Roadster. Сюда входит все - от руководств пользователя до схем и разъемов. Выпуск нового поколения Roadster отстает от графика на несколько лет. Обнародование дизайна может быть намеком на то, что выпуск нового поколения Roadster близок к завершению. В начале этого года Элон Маск заявил, что окончательный дизайн и проектирование Roadster будут завершены к концу 2023 года, поэтому производство автомобиля должно начаться к концу 2024 года.
Исходники: https://service.tesla.com/roadster
Компания Tesla выложила в открытый доступ все конструкторские и инженерные разработки оригинального автомобиля Roadster. Сюда входит все - от руководств пользователя до схем и разъемов. Выпуск нового поколения Roadster отстает от графика на несколько лет. Обнародование дизайна может быть намеком на то, что выпуск нового поколения Roadster близок к завершению. В начале этого года Элон Маск заявил, что окончательный дизайн и проектирование Roadster будут завершены к концу 2023 года, поэтому производство автомобиля должно начаться к концу 2024 года.
Исходники: https://service.tesla.com/roadster
👍14🤯2
iOS
Посмотрите занятную историю как Apple забанила (нашего?) разработчика с сотней тысяч долларов на счету.
• ChatGPT-4 в помощь: используем AI в доработке простого iOS-приложения
• Kingfisher: загрузка и кеширование изображений
• Our developer account was removed by Apple, and they haven't paid out $108,878
• Conquering the Climbing Stairs Challenge with Swift: A Dynamic Programming Approach
• From Concept to App Store: The Making of MuayThaiJournal
• Automatic Component Sizing - SwiftUI for iOS 17
• Replacing your logging framework with OSLog
• Simple Drop Down Picker – SwiftUI
#ios
Посмотрите занятную историю как Apple забанила (нашего?) разработчика с сотней тысяч долларов на счету.
• ChatGPT-4 в помощь: используем AI в доработке простого iOS-приложения
• Kingfisher: загрузка и кеширование изображений
• Our developer account was removed by Apple, and they haven't paid out $108,878
• Conquering the Climbing Stairs Challenge with Swift: A Dynamic Programming Approach
• From Concept to App Store: The Making of MuayThaiJournal
• Automatic Component Sizing - SwiftUI for iOS 17
• Replacing your logging framework with OSLog
• Simple Drop Down Picker – SwiftUI
#ios
Хабр
ChatGPT-4 в помощь: используем AI в доработке простого iOS-приложения
Мне всегда было интересно, как AI-инструменты изменят трудовые будни программиста. Когда появился ChatGPT, я начал пробовать использовать его в работе, и он быстро стал для меня вспомогательным...
🔥4👍2😱1🙈1
Android
• Где остановится Kotlin: язык поставил новый рекорд в индексе TIOBE
• Law of Demeter with examples in Kotlin
• In-App Update in Android 2023
• Build Video Calling for Your Android WhatsApp Clone With Jetpack Compose
• How to Create an Animated Splash Screen for Android: A Step-by-Step Guide
• How to Migrate an Android Project to Kotlin Multiplatform (KMP)
#android
• Где остановится Kotlin: язык поставил новый рекорд в индексе TIOBE
• Law of Demeter with examples in Kotlin
• In-App Update in Android 2023
• Build Video Calling for Your Android WhatsApp Clone With Jetpack Compose
• How to Create an Animated Splash Screen for Android: A Step-by-Step Guide
• How to Migrate an Android Project to Kotlin Multiplatform (KMP)
#android
AppTractor
Где остановится Kotlin: язык поставил новый рекорд в индексе TIOBE
Определенно, Kotlin может занять место в первой десятке. Сможет ли он стать частью
❤6🤡2
Разработчики Spotify поделились своей практикой отслеживания размера приложений. Процесс многоступенчатый и есть несколько интересных положений, вроде понимания карбонового следа (!) увеличения размера, системы отслеживания для каждого изменения кода, атрибуции всех изменений или прописанной политики с четко определенными положениями, дающими возможность делать исключения (привет Ferrari и Ф-1). В целом, как обычно, очень красиво, но для небольших проектов абсолютно бессмысленно.
Разработка
• Как Spotify отслеживает размеры приложений
• Magic Research: соло-разработчик заработал более $150,000, сделав всего 2 сообщения на Reddit
• Reflecting on 18 years at Google
• It’s OK if your code is just good enough
Маркетинг
• Что такое метрика ага-момента и как ее найти
• Mastering SKAN 4: The essentials for iOS success
Кроссплатформа
• Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 2)
• Our journey from React Native to Expo for mobile app development at Alan
Разработка
• Как Spotify отслеживает размеры приложений
• Magic Research: соло-разработчик заработал более $150,000, сделав всего 2 сообщения на Reddit
• Reflecting on 18 years at Google
• It’s OK if your code is just good enough
Маркетинг
• Что такое метрика ага-момента и как ее найти
• Mastering SKAN 4: The essentials for iOS success
Кроссплатформа
• Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 2)
• Our journey from React Native to Expo for mobile app development at Alan
AppTractor
Как Spotify отслеживает размеры приложений
Любое дополнение к приложению - будь то код для новой функции, ресурс изображения для новой кнопки или даже поддержка новой локализации - приводит к увеличению размера приложения. Вы можете спросить:
👍5
Размышления о 18 годах работы в Google
Если вам интересно, почему Google стал таким - вот внутреннее мнение от разработчика Flutter. Он уволился, проработав 18 лет в компании, и записал свои мысли.
На картинке, кажется, вся документация по дизайну для основных слоев Widget, RenderObject и dart:ui 😀
Если вам интересно, почему Google стал таким - вот внутреннее мнение от разработчика Flutter. Он уволился, проработав 18 лет в компании, и записал свои мысли.
На картинке, кажется, вся документация по дизайну для основных слоев Widget, RenderObject и dart:ui 😀
😢8
Forwarded from AppFiles - Mobile Development
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
(iOS Ru) Swift-уроки: Actor•
(iOS Ru) Как получить международный оффер iOS-разработчику•
(iOS En) Simple Drop Down Picker – SwiftUI•
(iOS En) SwiftUI: New Observation Framework•
(iOS En) SwiftUI Tooltips with TipKit (Popover & Inline Tips)•
(iOS En) 8 Tips to Design a Great Paywall•
(iOS En) SwiftData Lightweight Migrations•
(iOS En) Swipe Actions For ScrollView - No Gestures! - iOS 17 Scroll APIs•
(iOS En) How to Make a Color Picker with ScrollView, Scroll Position and Visual Effects•
(And Ru) Как устроен Android в умных колонках Яндекса•
(And Ru) Топ-10 вопросов для Senior Android: собеседование с разбором ответов и материалами•
(And En) Firebase Demo Day Recap, Flutter 3.16, and more dev news!•
(And En) A Team of 20 to Publish an App?! - THIS New Google Play Policy Change is CRAZY•
(And En) How to Migrate an Android Project to Kotlin Multiplatform (KMP)•
(And En) Custom Savers•
(And En) Circuit – Android App Architecture Masterclass with Zac and Josh from Slack•
(Crs En) The State of Kotlin Multiplatform•
(Crs En) Getting Started With KMP: Build Apps for iOS and Android With Shared Logic and Native UIs•
(Crs En) Build Apps for iOS, Android, and Desktop With Compose Multiplatform•
(Dev Ru) Мыслим как Platform Engineer•
(Dev Ru) Podlodka #347: развитие продукта от 0 до 1•
(Dev Ru) Tracer — альтернатива Crashlytics: другой взгляд на аналитику ошибок в приложениях•
(Dev Ru) Как качать миллионы фотографий в сутки, выдержать кратный рост и не умереть?•
(Aur Ru) Насколько реален российский айфон: разговор с Максимом Горшениным.•
(AI En) Machine Learning with Python and Scikit-Learn – Full CourseПоставьте 👍 и поделитесь подборкой!AppTractor
Swift-уроки: Actor
Акторы представляют собой изолированные блоки кода, которые гарантируют безопасность потоков при выполнении асинхронных операций.
👍6
Исследование The State of Developer Ecosystem 2023 от JetBrains
Еще к вопросу о популярности языков программирования - вот новое ежегодное исследование от JetBarins, данные опроса 26K+ разработчиков.
1. Самые используемые языки - на картинке сверху.
2. На протяжении многих лет Rust входил в число самых популярных языков для изучения. В 2023 году Rust впервые занял первое место. Rust не только обогнал Go и стал главным выбором для тех, кто хочет перейти на другой язык, но и пользователи Go стали первыми в очереди тех, кто готов перейти на Rust.
3. Потеряв за последние годы две трети своих пользователей, язык Objective-C, похоже, подходит к концу.
4. Использование Kotlin и Swift хоть на 1%, но снизилось.
Еще к вопросу о популярности языков программирования - вот новое ежегодное исследование от JetBarins, данные опроса 26K+ разработчиков.
1. Самые используемые языки - на картинке сверху.
2. На протяжении многих лет Rust входил в число самых популярных языков для изучения. В 2023 году Rust впервые занял первое место. Rust не только обогнал Go и стал главным выбором для тех, кто хочет перейти на другой язык, но и пользователи Go стали первыми в очереди тех, кто готов перейти на Rust.
3. Потеряв за последние годы две трети своих пользователей, язык Objective-C, похоже, подходит к концу.
4. Использование Kotlin и Swift хоть на 1%, но снизилось.
👍7
Отладка Google в домашних условиях
Вот и новый еженедельный дайджест - про iOS, Android, кроссплатформу и все вокруг. Поставьте 👍 и поделитесь с коллегами! Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное, возможно и за пределом мобайла. Вот, например, "Спасибо, что подержали мою уточку" - о том, как искать решение проблем просто объясняя их.
Вот и новый еженедельный дайджест - про iOS, Android, кроссплатформу и все вокруг. Поставьте 👍 и поделитесь с коллегами! Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное, возможно и за пределом мобайла. Вот, например, "Спасибо, что подержали мою уточку" - о том, как искать решение проблем просто объясняя их.
👍12❤1
iOS
• Поваренная книга SwiftUI: создание круглого представления в SwiftUI
• Variablur: размытие для SwiftUI на основе Metal
• Swift-уроки: Actor
• Как получить международный оффер iOS-разработчику
• SwiftLeeds 2023 Videos
• How to store images in SwiftData
• Refactoring Your iOS AppDelegate
• New to Bitrise: Enhanced Xcode Reporting & Build Annotations
• Months of rewriting code and tests to async/await
• Unit Test the Observation Framework
• Router Pattern for SwiftUI Navigation
#ios
• Поваренная книга SwiftUI: создание круглого представления в SwiftUI
• Variablur: размытие для SwiftUI на основе Metal
• Swift-уроки: Actor
• Как получить международный оффер iOS-разработчику
• SwiftLeeds 2023 Videos
• How to store images in SwiftData
• Refactoring Your iOS AppDelegate
• New to Bitrise: Enhanced Xcode Reporting & Build Annotations
• Months of rewriting code and tests to async/await
• Unit Test the Observation Framework
• Router Pattern for SwiftUI Navigation
#ios
AppTractor
Поваренная книга SwiftUI: создание круглого представления в SwiftUI
Хотите создать стильный круглый View в SwiftUI? Этого можно легко добиться с помощью встроенных модификаторов вида. В SwiftUI можно легко изменить форму представления, используя предопределенные формы, такие как Circle, Capsule или Rectangle. Чтобы создать…
👍2🔥1
Android
• Топ-10 причин утечки памяти в Android
• Как устроен Android в умных колонках Яндекса
• Топ-10 вопросов для Senior Android: собеседование с разбором ответов и материалами
• Reorderable: таскание элементов в (Lazy)Column и (Lazy)Row
• Kotlin под капотом: inline функции
• Preparing for Network Failures this Holiday Season
• Emoji error! Using the latest Compose with compileSDK < 34
• Oh no, another type safe Compose Navigation library for Android
• How to make Espresso tests more readable and stable
• Introducing a Gradle plugin for Screenshotbot
• Exploring Molecule and Beyond with Jake Wharton
#android
• Топ-10 причин утечки памяти в Android
• Как устроен Android в умных колонках Яндекса
• Топ-10 вопросов для Senior Android: собеседование с разбором ответов и материалами
• Reorderable: таскание элементов в (Lazy)Column и (Lazy)Row
• Kotlin под капотом: inline функции
• Preparing for Network Failures this Holiday Season
• Emoji error! Using the latest Compose with compileSDK < 34
• Oh no, another type safe Compose Navigation library for Android
• How to make Espresso tests more readable and stable
• Introducing a Gradle plugin for Screenshotbot
• Exploring Molecule and Beyond with Jake Wharton
#android
AppTractor
Топ-10 причин утечки памяти в Android
Решение проблем утечек памяти в Android-разработке имеет решающее значение для создания эффективных и надежных приложений.
❤6