Создать первое Android-приложение не так сложно, как может показаться.
В этом руководстве мы поможем вам создать первое Android-приложение и запустить его на телефоне.
Android — это операционная система на базе ядра Linux, предназначенная для мобильных устройств с сенсорным экраном, таких как смартфоны, планшеты и смарт-часы.
Это технология с открытым исходным кодом, позволяющая производителям устройств, операторам беспроводной связи и разработчикам свободно изменять и распространять программное обеспечение.
Android был представлен в 2007 году вместе с основанием Open Handset Alliance (альянсом компаний по разработке открытых стандартов для мобильных устройств).
В нашей статье не будем углубляться в установку и настройку Android Studio и посчитаем что она уже установлена.
Создаем приложение Android
Шаг 1. Дважды кликните на программу “Android Studio”.
Шаг 2. Кликните “New Project”.
Шаг 3. Выберите “Empty Activity”
📌 Далее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1🔥1
🦔 Попробуйте Android Studio Hedgehog одна из лучших IDE для разработки Android-приложений!
Что вас ждет?
🪲 Составление информации о состоянии в отладчике
💎 Показатели Android в App Quality Insights
🔼 Помощник по обновлению Android 14
Узнайте больше → https://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html
Что вас ждет?
🪲 Составление информации о состоянии в отладчике
💎 Показатели Android в App Quality Insights
🔼 Помощник по обновлению Android 14
Узнайте больше → https://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html
👍4❤1🔥1
Школа мобильной разработки: Android
1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI
#video #android
https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97
1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI
#video #android
https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97
❤4
https://github.com/google/comprehensive-rust
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - google/comprehensive-rust: This is the Rust course used by the Android team at Google. It provides you the material to…
This is the Rust course used by the Android team at Google. It provides you the material to quickly teach Rust. - google/comprehensive-rust
👍3
👨💻 Изучаем чистую архитектуру Flutter на практике
Архитектура приложений в разработке — это как план здания, который помогает понять, куда и как всё должно быть устроено. Главная её задача — разделить разные части работы, чтобы можно было удобнее работать по частям.
Если говорить про Flutter, хорошая архитектура позволяет держать отдельно логику приложения от того, что связано с телефонами и компьютерами, например, от экранов и кнопок. Это также делает тестирование кода проще, потому что можно проверять каждую часть по отдельности.
⏳ Содержание:
00:00 Введение
03:44 Добавление пакетов и создание структуры папок
06:33 Определение классов сущностей
09:05 Создание классов и моделей репозитория
11:27 Создание запросов к API с помощью Retrofit
14:40 Варианты использования
17:54 Создание блока
21:16 Инъекция зависимостей
24:32 Отображение новостей
29:20 Локальная база данных
33:39 Добавление методов базы данных в слои
36:45 Сохранение и удаление статьи из базы данных
#полезное
Архитектура приложений в разработке — это как план здания, который помогает понять, куда и как всё должно быть устроено. Главная её задача — разделить разные части работы, чтобы можно было удобнее работать по частям.
Если говорить про Flutter, хорошая архитектура позволяет держать отдельно логику приложения от того, что связано с телефонами и компьютерами, например, от экранов и кнопок. Это также делает тестирование кода проще, потому что можно проверять каждую часть по отдельности.
⏳ Содержание:
00:00 Введение
03:44 Добавление пакетов и создание структуры папок
06:33 Определение классов сущностей
09:05 Создание классов и моделей репозитория
11:27 Создание запросов к API с помощью Retrofit
14:40 Варианты использования
17:54 Создание блока
21:16 Инъекция зависимостей
24:32 Отображение новостей
29:20 Локальная база данных
33:39 Добавление методов базы данных в слои
36:45 Сохранение и удаление статьи из базы данных
#полезное
👍7❤2🔥1
🔥 Дайджест полезных материалов из мира Android за неделю
Почитать:
— Механизм экспорта растровых изображений в Figma: как изменяется качество изображения
— Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
— Мобильная разработка за неделю #517 (27 ноября — 3 декабря)
— Видео-сообщение как в Telegram. Часть третья — Контролы и раскрытое состояние
— Видео-сообщение как в Telegram. Часть вторая — Оптимизация
— Видео-сообщение как в Telegram. Часть первая — Список видео
— Diving into Kotlin .apply{} function
— My video on how I am organizing my Jetpack Compose code
— Implementing View Binding in Fragments with Nav Graph & RecyclerView in Android Studio using Kotlin: Comprehensive Tutorial
— Kotlin: Fungsi
— Entendendo RecyclerView de Uma Vez Por Todas
— Using Golang + Gomobile To Build Android Application (with code)
— Clean Architecture for Android MVI
— The architectural patterns I am using to better organize my Jetpack Compose code
Посмотреть:
🌐 Урок 8: setOnClickListener() - обработка нажатий, property access | Курс Android на Kotlin c нуля
🌐 Задача: Взлом замка на #Python (⏱ 01:00)
🌐 Операционные системы — Как это работает #10 (⏱ 01:18:16)
Хорошего дня!
Почитать:
— Механизм экспорта растровых изображений в Figma: как изменяется качество изображения
— Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
— Мобильная разработка за неделю #517 (27 ноября — 3 декабря)
— Видео-сообщение как в Telegram. Часть третья — Контролы и раскрытое состояние
— Видео-сообщение как в Telegram. Часть вторая — Оптимизация
— Видео-сообщение как в Telegram. Часть первая — Список видео
— Diving into Kotlin .apply{} function
— My video on how I am organizing my Jetpack Compose code
— Implementing View Binding in Fragments with Nav Graph & RecyclerView in Android Studio using Kotlin: Comprehensive Tutorial
— Kotlin: Fungsi
— Entendendo RecyclerView de Uma Vez Por Todas
— Using Golang + Gomobile To Build Android Application (with code)
— Clean Architecture for Android MVI
— The architectural patterns I am using to better organize my Jetpack Compose code
Посмотреть:
🌐 Урок 8: setOnClickListener() - обработка нажатий, property access | Курс Android на Kotlin c нуля
🌐 Задача: Взлом замка на #Python (⏱ 01:00)
🌐 Операционные системы — Как это работает #10 (⏱ 01:18:16)
Хорошего дня!
👍4🔥2🤡1
PCAPdroid - это приложение на Android с открытым исходным кодом, которое позволяет отслеживать и экспортировать сетевой трафик вашего устройства.
— Приложение имитирует VPN для захвата без полномочий root, но, в отличие от VPN, трафик обрабатывается локально на устройстве.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
🤨Какую архитектуру выбрать — с единой или множеством Activity?
В постоянно развивающейся сфере разработки Android-приложений приходится принимать ответственные решения, определяющие пользовательский опыт и общую архитектуру приложения. Одним из таких решений является выбор структуры Activity — фундаментальных строительных блоков любого Android-приложения.
Перед разработчиками возникает дилемма: упрощенный подход с единой Activity (Single Activity), включающей множество Фрагментов, или разрозненная природа множества Activity (Multiple Activities), каждая из которых представляет собой отдельную часть функциональности приложения.
Выбор между одним или несколькими видами Activity сродни выбору чертежа дома: он оказывает существенное влияние на поток, сложность и масштабируемость приложения. Каждый подход имеет свои преимущества и недостатки, отвечает различным требованиям к приложениям и предпочтениям разработчиков. Как начинающие, так и опытные специалисты должны вдумчиво подходить к принятию решений, чтобы их приложения были не только надежными и эффективными, но и обеспечивали оптимальный пользовательский опыт.
В Android-разработке решение об использовании единой или множества Activity зависит от сложности и структуры приложения. У обоих подходов есть свои преимущества и варианты применения.
📌 Рассмотрим
В постоянно развивающейся сфере разработки Android-приложений приходится принимать ответственные решения, определяющие пользовательский опыт и общую архитектуру приложения. Одним из таких решений является выбор структуры Activity — фундаментальных строительных блоков любого Android-приложения.
Перед разработчиками возникает дилемма: упрощенный подход с единой Activity (Single Activity), включающей множество Фрагментов, или разрозненная природа множества Activity (Multiple Activities), каждая из которых представляет собой отдельную часть функциональности приложения.
Выбор между одним или несколькими видами Activity сродни выбору чертежа дома: он оказывает существенное влияние на поток, сложность и масштабируемость приложения. Каждый подход имеет свои преимущества и недостатки, отвечает различным требованиям к приложениям и предпочтениям разработчиков. Как начинающие, так и опытные специалисты должны вдумчиво подходить к принятию решений, чтобы их приложения были не только надежными и эффективными, но и обеспечивали оптимальный пользовательский опыт.
В Android-разработке решение об использовании единой или множества Activity зависит от сложности и структуры приложения. У обоих подходов есть свои преимущества и варианты применения.
📌 Рассмотрим
👍9😁3
Структура памяти — это один из немногих теоретических блоков, в которых действительно необходимо разбираться, чтобы не только понимать программы, но и самого
Kotlin. Это видео будет очень полезно всем начинающим Android-разработчикам так как содержит в себе не только важную теорию, но и визуальную репрезентацию для лучшего усвоения информации.
https://www.youtube.com/watch?v=SY8Qak92ETA
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Учим Kotlin с нуля | №17 Структура памяти в Kotlin.
Полный видеокурс по языку программирования Kotlin. В семнадцатом уроке разбираем скучную, но очень важную теорию.
!!Важно!! Если возникают вопросы/ошибки пишите в комментах. Будем разбираться вместе.
Язык программирования Kotlin используют для создания…
!!Важно!! Если возникают вопросы/ошибки пишите в комментах. Будем разбираться вместе.
Язык программирования Kotlin используют для создания…
👍15❤1
📱В чем разница между ListView и RecyclerView?
Поговорим о различиях между RecyclerView и ListView — виджетами, предназначенными для отображения данных в Android-разработке.
Рассмотрим ключевые особенности RecyclerView и ListView, плюсы и минусы, а также случаи использования каждого виджета.
Для начала выясним, что такое представление (обозначаемое корнем “View” в названии каждого виджета).
Что такое представление?
В Android Studio доступны различные типы представлений для разработки Android-приложений: ImageView, TextView, ListView и т. д. Эти типы представлений помогают сделать удобным пользовательский интерфейс. Представление можно перетащить в раздел XML-дизайна или просто написать код в разделе XML-кода.
Прежде чем перейти к обсуждению различий между ListView и RecyclerView, разберемся в том, что такое ListView и RecyclerView?
ListView — это один из типов представлений, который показывает данные в формате с вертикальной прокруткой. Он повышает удобство работы пользователя, поскольку делает список легко доступным для понимания.
RecyclerView — виджет, наделенный дополнительными компонентами: Adapter соединяет между собой данные, которые нужно поместить в список, а LayoutManager (менеджер макетов) отвечает за правильное расположение данных/элементов списка на экране. Различают 3 типа LayoutManager.
🟡 LinearLayoutManager:
📌 Продолжение
@android_its
Поговорим о различиях между RecyclerView и ListView — виджетами, предназначенными для отображения данных в Android-разработке.
Рассмотрим ключевые особенности RecyclerView и ListView, плюсы и минусы, а также случаи использования каждого виджета.
Для начала выясним, что такое представление (обозначаемое корнем “View” в названии каждого виджета).
Что такое представление?
В Android Studio доступны различные типы представлений для разработки Android-приложений: ImageView, TextView, ListView и т. д. Эти типы представлений помогают сделать удобным пользовательский интерфейс. Представление можно перетащить в раздел XML-дизайна или просто написать код в разделе XML-кода.
Прежде чем перейти к обсуждению различий между ListView и RecyclerView, разберемся в том, что такое ListView и RecyclerView?
ListView — это один из типов представлений, который показывает данные в формате с вертикальной прокруткой. Он повышает удобство работы пользователя, поскольку делает список легко доступным для понимания.
RecyclerView — виджет, наделенный дополнительными компонентами: Adapter соединяет между собой данные, которые нужно поместить в список, а LayoutManager (менеджер макетов) отвечает за правильное расположение данных/элементов списка на экране. Различают 3 типа LayoutManager.
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥2
Android 14 уже выпущен, так что разработчикам пора обновить свои приложения.
Пользователи Android 14 (версии, получившей название “Upside Down Cake”, то есть “Перевернутый пирог”) получат новые возможности и повышенный уровень безопасности. Для разработчиков переход на Android 14 с его новыми API и функциями безопасности является обязательным.
Компания Google представила множество функций, связанных с конфиденциальностью и безопасностью. Предлагаем обзор важнейших новых функций обеспечения конфиденциальности и безопасности в Android 14. Кроме того, поговорим о том, что необходимо знать специалистам для работы с этой обновленной версией Android.
📌 Читать дальше
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥2
Android – https://github.com/android/nowinandroid
Slack – https://github.com/oianmol/SlackAndroidClone
Чистая архитектура – https://github.com/Farhandroid/AndroidCleanArchitecture
McCompose – https://github.com/hitanshu-dhawan/McCompose
JetQuotes – https://github.com/Spikeysanju/JetQuotes
Rebound – https://github.com/AnkitSuda/Rebound
Образец совы – https://github.com/android/compose-samples/tree/main/Owl
2048 – https://github.com/alexjlockwood/android-2048-compose
Alkaa 2.0 – https://github.com/igorescodro/alkaa
Delish – https://github.com/Elbehiry/Delish
Jettimer – https://github.com/ericktijerou/jettimer
NotyKT – https://github.com/PatilShreyas/NotyKT
Wiggles – https://github.com/Spikeysanju/Wiggles
WhatsApp – https://github.com/MindorksOpenSource/Jetpack-Compose-WhatsApp-Clone
Анимация – https://github.com/canopas/compose-animations-examples
Jetflix – https://github.com/MindorksOpenSource/Jetpack-Compose-WhatsApp-Clone
Jetpack Compose на примерах – https://github.com/vinaygaba/Learn-Jetpack-Compose-By-Example
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5⚡1🔥1
https://plugins.jetbrains.com/plugin/23048-introduction-to-ide-code-refactoring-in-kotlin
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Kotlin изнутри: как работают inline-функции
Часто проводя технические собеседования, я пришел к выводу, что многие разработчики не понимают, в чем польза inline-функций, зачем нужен crossinline и как работает reified. Причина распространенных заблуждений насчет inline-функций отчасти заключается в неточном их описании, ранее опубликованном на сайте kotlinlang.org. Хочу развенчать эти заблуждения и наглядно показать, как работают inline-функции (встраиваемые) и в чем преимущество их использования.
Заблуждение 1-е: inline-функции экономят стек
Допустим, вы пытаетесь создать такую inline-функцию:
В этом случае компилятор выдаст предупреждение: “Expected performance impact from inlining is insignificant. Inlining works best for functions with parameters of functional types” (“Ожидаемое влияние встраивания на производительность незначительно. Встраивание лучше всего работает для функций с параметрами функциональных типов”). Это примерно означает, что JIT-компилятор сам прекрасно справляется с встраиванием кода и не нужно пытаться ему в этом помочь.
Inline-функции следует использовать только при передаче в функцию параметров функционального типа.
📌 Продолжение
@android_its
Часто проводя технические собеседования, я пришел к выводу, что многие разработчики не понимают, в чем польза inline-функций, зачем нужен crossinline и как работает reified. Причина распространенных заблуждений насчет inline-функций отчасти заключается в неточном их описании, ранее опубликованном на сайте kotlinlang.org. Хочу развенчать эти заблуждения и наглядно показать, как работают inline-функции (встраиваемые) и в чем преимущество их использования.
Заблуждение 1-е: inline-функции экономят стек
Допустим, вы пытаетесь создать такую inline-функцию:
private inline fun warningInlineFun(a: Int, b: Int): Int {
return a + b
}В этом случае компилятор выдаст предупреждение: “Expected performance impact from inlining is insignificant. Inlining works best for functions with parameters of functional types” (“Ожидаемое влияние встраивания на производительность незначительно. Встраивание лучше всего работает для функций с параметрами функциональных типов”). Это примерно означает, что JIT-компилятор сам прекрасно справляется с встраиванием кода и не нужно пытаться ему в этом помочь.
Inline-функции следует использовать только при передаче в функцию параметров функционального типа.
📌 Продолжение
@android_its
❤5👍3🔥2
Как удаленно тестировать мобильные приложения?⚡️
Ребята из @Selectel запустили новый продукт – ферму мобильных устройств. Это инфраструктурное решение для удаленного тестирования и сборки приложений. С ней вам не нужны телефоны и эмуляторы — ферма предоставляет доступ к большой базе смартфонов с различными параметрами и может проводить широкий набор тестов.
Преимущества фермы мобильных устройств:
◽️Не нужно думать о передаче устройств между удаленными сотрудниками: подключайтесь одновременно с командой из любой точки мира.
◽️Комфортная работа на нескольких устройствах: вы можете запускать автотесты параллельно.
◽️Обслуживание и ремонт Selectel берет на себя.
Зарегистрируйтесь на бета-тест и получите месяц работы с одним устройством в подарок: https://slc.tl/m0vnl
Реклама ООО «Селектел» erid 2VtzquvUVH9
Ребята из @Selectel запустили новый продукт – ферму мобильных устройств. Это инфраструктурное решение для удаленного тестирования и сборки приложений. С ней вам не нужны телефоны и эмуляторы — ферма предоставляет доступ к большой базе смартфонов с различными параметрами и может проводить широкий набор тестов.
Преимущества фермы мобильных устройств:
◽️Не нужно думать о передаче устройств между удаленными сотрудниками: подключайтесь одновременно с командой из любой точки мира.
◽️Комфортная работа на нескольких устройствах: вы можете запускать автотесты параллельно.
◽️Обслуживание и ремонт Selectel берет на себя.
Зарегистрируйтесь на бета-тест и получите месяц работы с одним устройством в подарок: https://slc.tl/m0vnl
Реклама ООО «Селектел» erid 2VtzquvUVH9
👍3🔥1
🎉Обновление Jetpack Compose <//>
Совсем надовно
▪ Улучшения производительности: Скорость прокрутки увеличена на 20%, а время запуска сократилось на 12%.
▪ Улучшена производительность кода, сгенерированного Compose
▪ Параметр includeFontPadding по умолчанию теперь false
▪ Поддержка Drag and Drop
➡️ Полный список изменений
➡️ Roadmap
@android_its
Совсем надовно
Jetpack Compose обновился до версии 1.6. Этот выпуск в основном посвящен улучшению производительности для повышения эффективни основных частей API. Что нового? ▪ Улучшения производительности: Скорость прокрутки увеличена на 20%, а время запуска сократилось на 12%.
▪ Улучшена производительность кода, сгенерированного Compose
▪ Параметр includeFontPadding по умолчанию теперь false
▪ Поддержка Drag and Drop
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🥰4🔥1
Как и где запускать автотесты мобильных приложений, если их 1) ооочень много и 2) нужно получить результат быстро?
В тест-раннере параллельного запуска Emcee. Это продукт AvitoTech, который проводит тысячи нативных тестов за 15 минут. Для iOS и android. На железках и в облаке.
О том, как происходит android-тестирование, инженеры AvitoTech рассказали (и показали на демо-прогоне) в собственном образовательном сериале — avito.code.
Реклама ООО "Авито Тех", ИНН 9710089440 erid:LdtCKGMRc
В тест-раннере параллельного запуска Emcee. Это продукт AvitoTech, который проводит тысячи нативных тестов за 15 минут. Для iOS и android. На железках и в облаке.
О том, как происходит android-тестирование, инженеры AvitoTech рассказали (и показали на демо-прогоне) в собственном образовательном сериале — avito.code.
Реклама ООО "Авито Тех", ИНН 9710089440 erid:LdtCKGMRc
🔥5👍1
Вот как легко можно записывать и воспроизводить аудио в Android
GitHub https://github.com/philipplackner/AudioRecorder
https://www.youtube.com/watch?v=4MJFmhcONfI
#Android
GitHub https://github.com/philipplackner/AudioRecorder
https://www.youtube.com/watch?v=4MJFmhcONfI
#Android
GitHub
GitHub - philipplackner/AudioRecorder
Contribute to philipplackner/AudioRecorder development by creating an account on GitHub.
👍7❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Камерный митап для мобильных разработчиков, где каждый может предложить свой кейс для обсуждения по трем трекам: iOS, Android, Flutter.
Участники митапа — техлиды, руководители разработки и ведущие мобильные разработчики из команд Яндекс Go и Яндекс Про. В завершении вечера afterparty — нетворкинг, настолки, вкусная еда и напитки.
Место встречи: Москва-Сити, башня «Око»
Дата и время: 15 февраля, 18:30
Бесплатно. Количество мест ограничено. Регистрация обязательна
Подробнее
Реклама. ООО "Яндекс.Такси" ИНН 7704340310
Участники митапа — техлиды, руководители разработки и ведущие мобильные разработчики из команд Яндекс Go и Яндекс Про. В завершении вечера afterparty — нетворкинг, настолки, вкусная еда и напитки.
Место встречи: Москва-Сити, башня «Око»
Дата и время: 15 февраля, 18:30
Бесплатно. Количество мест ограничено. Регистрация обязательна
Подробнее
Реклама. ООО "Яндекс.Такси" ИНН 7704340310
❤3