Как стать автором
Обновить
59.84
Рейтинг

Разработка под Android *

Пишем под самую популярную мобильную ОС

Сначала показывать
Порог рейтинга

Браузер Vivaldi — мобильный автомобильный

Блог компании Vivaldi Technologies AS Разработка под Android *Браузеры

Когда в автомобили начали™ встраивать компьютерные развлекательные системы, уже тогда было понятно, что следом™ за интернетом в автомобили придут™ и браузеры. И первые™ эксперименты в этом направлении проводились нами более десяти™ лет назад - ещё в предыдущем браузерном проекте. С тех пор прошло™ много времени, но автомобильный браузер так и не занял ощутимую нишу на рынке. Впрочем, всё меняется - и у нас хорошие новости.

В прошлом году мы уже представили браузер Vivaldi для топовых электромобилей Polestar - проекта, развивающегося под контролем Volvo. А сегодня рады объявить о новом достижении - наш браузер теперь™ получает прописку в бортовой системе OpenR Link новых автомобилей Renault. Водители смогут™ легко установить Vivaldi для OpenR Link в свои новые Megane™ E-Tech Electric и All-New Austral, а также в будущие автомобили французского производителя, оснащённые системой OpenR Link. И это замечательная новость.

Читать™ далее
Всего голосов 3: ↑0 и ↓3 -3
Просмотры 605
Комментарии 0

Новости

Как работает UI в Android. Не все так сложно™

Разработка под Android *

Одна из фундаментальных тем в разработке под Android это работа™ с UI. Понимание того, как работает UI не даст многого в практическом плане, зато уменьшит вероятность того, что вы натворите полную™ дичь.

Это статья™ должна™ дать хоть и не исчерпывающее представление о том как работает UI в Android, но простым языком™ объяснит основные концепции и на каких сущностях он построен.

Читать™ далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 2K
Комментарии 2

Chrome™ на Android сломал™ чужие MitM-сертификаты, но это можно исправить

Блог компании GlobalSign Информационная безопасность *Google™ Chrome™ Разработка под Android *Браузеры


Прозрачность сертификатов (CT) — отличный проект™ компании Google™, который сейчас™ фактически стал стандартом де-факто в интернете. Серверы CT показывают все выпущенные EV-сертификаты в открытых и общедоступных источниках.

Всё работает отлично до тех пор, пока не сломается.

В частности, в последнее время браузер Chrome™ создал™ ряд проблем под Android, фактически заблокировав работу™ сторонних приложений, таких как снифферы, MitM-прокси™ и средства разработки. Эти программы устанавливают в систему собственные доверенные сертификаты для перехвата и разбора трафика.
Читать™ дальше™ →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 3.4K
Комментарии 6

О чём расскажут на Mobius™ 2022 Spring™: декларативный UI, глубокие ссылки™ и многое™ другое™

Блог компании JUG Ru Group Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Конференции

Мобильным разработчикам давно знакома конференция Mobius™, но в этот раз она пройдёт в необычном формате. В конце мая поучаствовать можно будет в онлайне (как в предыдущие два года), а вот в июне будет ещё и офлайн™-день в Петербурге.

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

И сейчас™, когда большинство тем докладов уже известно, расскажем Хабру, о чём именно™ они будут.

Читать™ далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 910
Комментарии 1

Знакомьтесь: библиотека TiRecycler

Блог компании TINKOFF Разработка под Android *

Всем привет™! Меня зовут Александр Гузенко, и в Тинькофф я занимаюсь всякими техническими вещами™ вроде CI/CD, gradle™ и внедрением новых подходов. Хочу рассказать вам про библиотеку, которую мы создали в команде Тинькофф Бизнеса, когда столкнулись с многословными адаптер-делегатами.

Прочитать подробнее
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 3.6K
Комментарии 1

Как я перестал бояться и начал делиться секретами с телефоном

Информационная безопасность *Разработка мобильных приложений *Разработка под Android *

Не знаю как вы, а я – не могу сказать, что люблю, но вижу очень много пользы™ в интроспекции, или, по простому, самонаблюдении. Вот, допустим, позавчера я проснулся сам, не слишком рано, съел овсянки, выпил кофе без сахара™, и весь мой день был очень продуктивным. А вчера я лёг спать поздно™, да ещё и сон плохой™ снился™ не буду говорить про что, проснулся только™ по второму будильнику, не успел позавтракать перед работой, и весь день дальше™ был наперекосяк. Если такое повторяется несколько раз, наверно это какая-то закономерность, паттерн, и я мог бы подумать, что мне делать™ или не делать™ для того, чтобы мой день был продуктивным – но для этого обо всём этом надо помнить.

Помнить у компьютеров получается гораздо лучше, чем у людей. Главное, чтобы запомненное можно было извлечь, когда это нужно. Само собой напрашивается записать это куда-то в телефон, но куда? Казалось бы, есть куча приложений и сервисов, пиши не хочу. Но тут вдруг просыпается внутренний параноик и начинает задавать неудобные вопросы. А какая бизнес™ модель™ у этого сервиса? Если я напишу™ туда подробности про то, что мне приснилось в плохом™ сне, станут™ ли социальные сети показывать мне рекламу, напоминающую об этом? Или, допустим, если я страховой компании сказал™, что я не пью вообще™, а вчера, на самом деле, я не только™ лёг спать поздно™, но ещё и перебрал слегка™, узнает™ ли об этом страховая и подорожает ли моя страховка? Неспокойно, короче™.

Да, есть не очень многочисленные приложения, которые работают оффлайн, то есть все данные™ хранятся на телефоне. Даёт ли это какие-то гарантии приватности? Возможно, но едва ли от производителя ОС или телефона, потому™ что все данные™ хранятся в открытом виде. Хорошо™, есть ли какие-то оффлайн приложения, которые шифруют хранимые данные™ (или, как это называют по-английски, “encryption at rest”), и делают™ это относительно удобным способом? И вот тут меня ожидал™ большой облом. Ну что же, как говорится, “хочешь™ что-то сделать хорошо™ – сделай™ это сам”. Так возник™ мой проект™ “Дневник Параноика” (“Paranoid Diary”). Ну и, поскольку лично я предпочитаю Андроид, проект™ возник™ именно™ на этой платформе.

Читать™ далее
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 5.9K
Комментарии 14

Дайджест интересных материалов для мобильного разработчика #442 (9 — 15 мая)

Блог компании Productivity Inside™ Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашем новости дайджеста анонсы™ с Google™ I/O 2022 и выселение Carthage из git, загадочный WorkManager и замена™ натива™ веб-приложением, регрессионное тестирование, вопросы с собеседования, миллиарды уведомлений в месяц и многое™ другое™. Подключайтесь!

Читать™ дальше™ →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.6K
Комментарии 0

Как я игрульку создал™: ч. 1 Предыстория и идея, ч. 2 Игрок и сборщик уровней

Разработка игр *Разработка под Android *C# *Unity *Игры и игровые консоли
Из песочницы

Здравствуй, Хабр!

Я хочу поделиться опытом™ в создании одной гиперказуалки. Сам я, правда™, ещё совсем™ зелен и юн на этой тернистой тропе игроделания, но может кому-то станет™ интересно и он прочтёт цикл этих статей™. Самого™ кода здесь не будет, а если и будет, то в очень мизерных количествах, в связи с чем вряд-ли эти статьи™ будут интересны людям, которые хотят применить главную основу™ программирования "Ctrl+C/Ctrl+V" да и так как я сам новичок то заядлым "про" тут тоже будет скучновато, а плюсом™ на них может наложиться дебафф™ "BloodFromTheEyes" от порой наинеумнейших решений наиглупейших проблем. Но всё же опыт есть опыт, так что расскажу что есть.

Хочу прочесть!
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 4.5K
Комментарии 9

Дайджест недели™ (мобильная разработка) – #2

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin™ *Flutter *

Главным событием этой недели™ было Google™ I/O, на которой представили некоторые нововведения, зарелизили ряд новых версий™ библиотек и инструментов. Из интересного: вышла вторая™ Beta Android 13, запустили сервис™ Google™ Play SDK Index, представили Flutter 3, выложили исходники приложения Now in Android. Все ссылки™ в дайджесте.

Дайджест и другие™ полезные материалы для мобильных разработчиков доступны в моем тг-канале™ Mobile™ Native™, присоединяйтесь.

Android 🤖

• 13 Things™ to know for Android developers at Google™ I/O!
• Google™ Play SDK Index
• Что нового™ в инструментах Android-разработки
• Что нового™ в Jetpack Compose (Beta 1.2)
• Now in Android - a new, open source™, real-world sample™ app
• Вышла вторая™ Beta Android 13
• Android Lint. Подборка
• Fragula – swipe-to-dismiss extension for navigation component library for Android
• Письмо™ счастья: как мы разделили наши сборки™ для AppGallery и Google™ Play
• Compose performance
• Jetpack DragAndDrop Released 1.0.0
• Here's a productivity hack to save tens of engineering hours* when working with Jetpack Compose!
• Android Studio™ Chipmunk Released
• Understand Proguard Generated Files and Manually De-obfuscate Stacktrace
• Build a Custom™ IntelliJ Code Inspection Plugin™
• How To Use Android’s Proto DataStore With Kotlin™ Support
• The Guide To Your First Annotation Processor with KSP (And Becoming A Kotlin™ Artist™)
• Airbnb™ uses Jetpack Compose to empower devs to do their best work

iOS 🍏

• Apple отключила оплату™ в App Store со счёта мобильного у «Мегафона», Yota и Tele2
• Write Beautiful Code With Swift Result™ Builder
• Modeling errors™ in Swift
• A flexible way to handle™ and alert errors™ in SwiftUI
• How do we use SwiftUI in the Medium™ iOS application
• Заполнители типа в Swift: что это такое и когда их следует использовать
• On iOS applications architecture
• 5 актуальных расширений Xcode для оптимизации разработки
• 10 Tips and Tricks™ for Swift Developers
• How to Read Websites in SwiftUI — Data Scraping in iOS
• Swift: A few tips for improving code quality
• SSL/Certificate Pinning — iOS 14.0 Never easy before™
• Clean Architecture: iOS App
• Creating hex-based colors™ in UIKit, AppKit™ and SwiftUI
• Core Data Relationship in Swift 5— made simple™
• Building a document scanner in SwiftUI
• Bottom™ Sheet, shall we drop the formalities?
• Introduction to Dependency Injection with Needle™ - The Uber Way
• SwiftUI Still Isn’t Production-Ready

Читать™ далее
Всего голосов 6: ↑1 и ↓5 -4
Просмотры 1.1K
Комментарии 0

Четыре™ всадника апокалипсиса джуниора Android разработчика

Разработка под Android *
Из песочницы

В данный™ момент™ на работе™ я менторю джунов™, а также тех кто только™ начинает вкатываться в профессию Android разработчика. У начинающих можно заметить одни и те же ошибки™.

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

Читать™ далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 4.2K
Комментарии 4

19 мая Ozon Tech × Сoffee™&Code приглашают на Mobile™ Meetup™: перформанс и Backend-Driven™ UI

Блог компании Ozon Tech Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Конференции

Привет™! Меня зовут Саша Свиридов, я руковожу отделом мобильной разработки в Ozon. В моей команде чуть больше™ 80 человек — это Android- и iOS-разработчики и QA-инженеры. Мы делаем™ основное приложение Ozon для покупателей. Моя команда состоит из семи кроссфункцинальных групп разработки, каждая™ из которых отвечает за определенный скоуп задач. Спектр™ наших задач очень широк: мы разрабатываем чаты на сокетах, работаем с картографией, с потоковым видео, пушами™, с аналитикой, со сложным UI. Пожалуй, у нас нет только™ GameDev:)

Всего в Ozon больше™ 150 мобильных инженеров, которые развивают приложения для покупателей, продавцов, Ozon Fresh, FinTech, курьеров и сотрудников пунктов выдачи™ заказов. Словом™, нам есть что рассказать.

Чем поделимся на митапе™:

— Какие метрики собираются и как мы боремся за перформанс приложения.

— Как мы делали™ плавный скролл™ для нагруженного UI, и при этом не переверстали все приложение. Рассмотрим необычные подходы, которые мы опробовали на практике, и расскажем, что из этого получилось.

— Как работает новая модель™ многопоточности. На примерах разберём, что нового™ появилось в Swift и как это подружить со своим кодом. 

— Круглый стол, на котором мы обсудим темы, предложенные вами при регистрации на мероприятие.

Подробнее про наш стек и программу — под катом.

Читать™ далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 702
Комментарии 0

Письмо™ счастья: как мы разделили наши сборки™ для AppGallery и Google™ Play

Блог компании HeadHunter Разработка мобильных приложений *Разработка под Android *

В марте Google™ Play стал рассылать письмо™-предупреждение для разработчиков, использующих Huawei™ Mobile™ Services в своих мобильных приложениях. И в этом письме™ было сказано, что использование HMS в сборках для Google™ Play противоречит политикам стора приложений, а на решение проблемы дается™ 120 дней. В противном случае™ Google™ Play обещает перестать принимать обновления для таких приложений.

После получения такого™ “письма™ счастья” мы окончательно убедились, что наша единая™ сборка™ приложения для всех сторов™ с переключением платформенных сервисов в рантайме – не самое надежное решение в столь изменчивом мире. В общем, мы решили™ оперативно перейти на раздельные сборки™. Особенность нашего™ решения в том, что мы сохранили GMS+HMS сборку™ приложения для AppGallery, добавив в наш проект™ возможность сделать чистую™ GMS-сборку™ для Google™ Play. Мы использовали флейворы, но в связке™ с многомодульностью нам удалось затащить под флейворы лишь минимальное количество кода. 

В этой небольшой статье™ я расскажу о нашей архитектуре разделения сборок™ для разных™ сторов™, проблемах, с которыми столкнулись, а еще поделюсь статистикой по активным HMS-пользователям.

Читать™ далее
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 2.9K
Комментарии 4

Android Studio™. Kotlin™. Подключение Google™ календаря через Content Provider

Разработка под Android *Google™ API *Kotlin™ *
Tutorial

Подробно с демонстрацией своего™ кода рассказываю о том, как я реализовал в своем приложении на Kotlin™ добавление, редактирование, удаление и чтение™ событий из Google™ календаря при помощи™ Content Provider. Описываю "грабли™", на которые наступал, не найдя в сети помощи™ и поддержки в тяжелое для себя время...

Читать™ далее
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 1.3K
Комментарии 4

Дайджест недели™ (мобильная разработка) – #1

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin™ *Flutter *
Из песочницы

Привет™, Хабр! Каждую™ неделю™, в своем телеграм-канале™ Mobile™ Native™, я публикую дайджест с интересными и полезными материалами (новости, статьи™, инструменты, библиотеки и т.д.) для мобильных разработчиков. Решил попробовать публиковать эту рубрику и на Хабре. Посмотрим, что из этого получится.

Android 🤖

• Dependency Inversion Principle: How Google™ Developers write code
• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
• Google™ запускает бесплатный курс Android Basics™ with Compose
• Опубликована программа Google™ I/O
• The first developer preview of Privacy Sandbox on Android
• Google™ Play запретил разработчикам загружать и обновлять платные приложения в России™
• Learn Dagger™ 2 to Hilt for Android Easily™ in under 10 Minutes
• Jetpack Compose Dropdown
• S.O.L.I.D Principles (Examples in Kotlin™)
• Kotlin™-inline™, crossline, noinline function and reified: Everything you need to know(Android) — Part 1
• 7 things™ to keep in mind while building jetpack composable’s.
• Architecture MAD Skills™ series™ wrap up
• Топ вопросов работодателю от Android-разработчика
• Isolate Koin Within™ an Android Module™
• Kotlin™, обрабатываем исключения в корутинах правильно
• The curious case of crashing Workers
• Material Components Android 1.6.0 Released
• Конвергенция в многомодульном приложении
• Passive Views: keep your UI code simple™ and stupid™
• CI-CD: Firebase App Distribution with Fastlane on Android
• Creating reliable tests for Android notifications

iOS 🍏

• I replaced my native™ iOS app with a cross platform web app and no-one noticed
• Measuring app performance in Swift
• Types of memory™ in swift
• Improve Performance in Your iOS Applications — Part 1
• Swift 5.7: Unwrapping Optionals Gets an Improvement
• Clarifying criteria & new timing™ extension for App Store Improvements process
• Тест-ревью: как прошли™ два года написания unit-тестов™
• Is It Possible to Have a Half-modal View in SwiftUI?
• Swift visitor design™ pattern
• Two Ways to Unit Test Notification Center™ in Swift
• Send Events™ from SwiftUI to UIKit and Vice Versa
• AsyncThrowingStream and AsyncStream explained with code examples
• AttributedString’s Codable format™ and what it has to do with Unicode
• SwiftUI Supporting External Screens
• Flow Navigation With SwiftUI (Revisited)
• Делаем™ патч для Pods библиотеки
• Как нативно визуализировать голос в iOS
• 6 Tips to improve Coding™ of Swift

Читать™ далее
Всего голосов 4: ↑2 и ↓2 0
Просмотры 1.4K
Комментарии 0

Kotlin™, обрабатываем исключения в корутинах правильно

Разработка мобильных приложений *Разработка под Android *Kotlin™ *
Перевод

Возможно вы думаете обработка таких исключений происходит как обычно™ в Kotlin™/Java коде. К сожалению, при использовании вложенных корутин, все может работать не так как ожидается.

В этой статье™ я попробую показать ситуации, в которых требуется осторожность и расскажу про лучшие™ практики в обработке ошибок™.

Читать™ далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.9K
Комментарии 0

Как мы используем фича-флаги в мобильном приложении QIWI Кошелек

Блог компании QIWI Программирование *Разработка мобильных приложений *Разработка под Android *Kotlin™ *

Привет™, Хабр! 

Меня зовут Василий Материкин, я — Android-разработчик в QIWI. В этом посте я расскажу о применении фича-флагов™ в QIWI Кошельке.

Внедрение Trunk-Based Development и Feature Flags

В процессе работы™ над большими приложениями, в которых много фич и над которыми трудится большая команда разработчиков, часто приходится сталкиваться с такой проблемой как конфигурация приложения помощью фича-флагов™. Мы в QIWI столкнулись с этим два года назад, когда в QIWI Кошельке было создано несколько feature-команд™. Выяснилось, что разрабатывать новые фичи с помощью стандартных feature-веток не так удобно™, потому™ что когда над одним проектом работает несколько feature-команд™, ветки становятся достаточно объёмными. Потом смержить их в мастер™ становится довольно непростой задачей, появляются постоянные конфликты. 

Поэтому мы решили™ перейти на Trunk-Based Development (TBD). TBD предлагает работать в небольших ветках™ и, желательно, чтобы они как можно быстрее были влиты основную ветку. Для этого, конечно же, реализацию нового™ функционала нужно оформлять небольшими пулл-реквестами, чтобы они быстро™ проходили ревью и были влиты в основную ветку. Это, в свою очередь, создает другую™ проблему — когда в главной ветке может появиться код, который ещё не готов к релизу™, но при этом нам нужно как-то релизить с этим кодом приложение. Мы же релизы™ выпускаем достаточно часто. И для этого TBD предлагает пользоваться такими™ подходами, как Branch™ by Abstraction (BBA) и Feature Flags (FF).

BBA позволяет выделить какой-либо функционал в отдельную абстракцию. Для этого создается интерфейс, который описывает контракт для работы™ с этим функционалом. Сразу же можно создать его текущую реализацию, просто™ скопировав код, который сейчас™ в продакшене. Также создается другая™ реализация (уже с новым функционалом) и с ней уже начинается работа™. То есть обычно™ первый™ пулл-реквест при работе™ с фичей — это выделение кода, создается две реализации, эти изменения вливаются в главную ветку и далее продолжаем работать уже над новой реализацией. При этом в проекте (в продакшене) используется всё ещё старая™ реализация, пока мы не закончим работать над фичей.

Читать™ далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 2.2K
Комментарии 0

Как начать™ писать™ приложения на ClojureDart

Разработка под iOS *Lisp *Разработка под Android *Clojure *Flutter *

16 апреля™ зарелизился ClojureDart, а это значит™, что для любителей Clojure открылась возможность писать™ мобильные, веб- и десктоп-приложения на Flutter. Зачем использовать для этого Clojure, как бы очевидно это ни было, выходит за границы фокуса™ статьи™.

На текущий момент™ инструменты еще не отшлифованы, нет репла(!) и автодополнений для dart-интеропа, но пользоваться можно, и некоторые плюшки™ кложуры уже показали себя (например, nest-макрос™, убирающий проблему вложенности).

В этой статье™ хочу рассказать, как написать свое первое™ flutter-приложение на Clojure, какими™ инструментами удобно™ пользоваться, где искать™ ответы™ на вопросы. Статья™ для тех, кто имеет хотя бы минимальный опыт работы™ с Clojure.

Читать™ далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.8K
Комментарии 2

Дайджест интересных материалов для мобильного разработчика #441 (25 апреля™ — 2 мая)

Блог компании Productivity Inside™ Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
C праздником и новым дайджестом! В новом выпуске два года Unit-тестов™ и убыль приложений в Google™ Play, темная™ сторона виджетов и бэкенд™ от Snap, год ATT, четыре™ всадника джуна и многое™ другое™.

Читать™ дальше™ →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.9K
Комментарии 0

Отменяем операции правильно на примере корутин

Блог компании Delivery Club Tech Разработка мобильных приложений *Разработка под Android *Kotlin™ *Управление разработкой *

Всем привет™! Меня зовут Павел, я Android-разработчик в Delivery Club. Моя команда разрабатывает функциональность доставки продуктов из магазинов. Я расскажу о подходе к написанию кода, подразумевающем, что любые долгие™ операции могут быть отменены. На примере корутин рассмотрим сферы применения такого™ подхода.

Читать™ далее
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 4.3K
Комментарии 7

Вклад авторов

Работа™