Мобильная разработка #1
3.98K subscribers
798 photos
85 videos
32 files
1.26K links
Всё о создании приложений под Android и iOS в одном месте.

🔹 Инструменты, библиотеки и ресурсы для ускорения работы.
🔹 Статьи и гайды для разработчиков любого уровня.
🔹 Тренды мобильной разработки и новости индустрии.

Реклама @evgenycarter
Download Telegram
Становимся мастером iOS-симулятора

Расширьте свои навыки с помощью симулятора iOS, который сделает вас более продуктивным. Подробнее.

#ios
👍2
Многопользовательская игра для рисования на Compose

https://github.com/getStream/stream-draw-android
👍1
OAuth в мобильных приложениях
Ни один сервис не обходится без логина. Часто в мобильных приложениях требуется интегрировать вход через сторонние соцсети — например, зайти через Google или VK. А при обучении мобильной разработке используются открытые API, где для авторизации используется OAuth.

Поэтому разработчикам мобильных приложений приходится работать с OAuth. В сети по этой теме есть разные материалы.

В этой статье я попробую структурированно закрыть нюансы OAuth в мобильных приложениях: на какие моменты стоит обратить внимание, какие способы реализации выбрать. А также поделюсь опытом настройки OAuth в Android-приложении с использованием библиотеки AppAuth.
👍3
Подборка интересных каналов 🔥

DeepFake
На канале публикуем deepfake видео и связанные с ними технологии.
https://t.me/deepfakenow

Мир технологий (Technology World)
Добро пожаловать в мир технологий
https://t.me/mir_teh

GitHub Сообщество
https://t.me/Githublib

Реальный Python
Все о пайтон, новости, подборки на русском и английском.
https://t.me/python_real

BigData
Data Science : Big Data : Machine Learning : Deep Learning
https://t.me/bigdata_1

Базы данных (Data Base)
https://t.me/database_info

Книги для программистов Rus
https://t.me/book_for_dev

DevOps
Пишем о Docker, Kubernetes и др.
https://t.me/i_DevOps

Типичный Сисадмин
Админский юмор, фото железа, было/стало, все здесь!
https://t.me/tipsysdmin

Python академия
Учи Python быстро и легко.
https://t.me/pythonofff

Coddy
Академия кода.
https://t.me/coddy_academy

Bitkoinoff - новости криптовалют
Все самое важное о криптовалютах и блокчейне
https://t.me/bitkoinoff

Сообщество Дизайнеров
https://t.me/ux_web

GameDev: разработка игр
https://t.me/game_devv
👍1👏1🎉1
Работа с клавиатурой в Jetpack Compose

Ввод данных - важная задача во многих приложениях. На устройствах без физической клавиатуры (а таких в стране Android подавляющее большинство) вводом данных занимается так называемая программная клавиатура. Теперь вы можете задаться вопросом, зачем вообще нужно говорить об этих виртуальных периферийных устройствах? Разве операционная система не должна позаботиться об этом? Я имею в виду, что с точки зрения пользовательского интерфейса приложение выражает свое желание разрешить пользовательский ввод, показывая и настраивая редактируемое текстовое поле. Что еще нужно сделать? В этой статье мы подробно рассмотрим, как приложения Jetpack Compose взаимодействуют с клавиатурой.
👍1
Улучшенное кеширование с Kotlin Flow и reduce функцией

Я работаю над снижением нагрузки на нашу базу данных, сосредоточившись на различных решениях по кэшированию. В идеальном мире данные, которые являются "статичными", будут в значительной степени кэшироваться; при этом требуется минимальное взаимодействие с базой данных. Однако это не тот мир, в котором я живу. Каждый запрос к нашему GraphQL API приводит к прямому обращению к базе данных. Уф!


#Kotlin
👍1
Что действительно важно знать о трудоустройстве за границей
Митап с Senior Technical HR Lead Amazon Эльвирой Шустровой

🤔 Кто лучше всего знает, как айтишнику устроиться в зарубежную компанию? Конечно же, HR, который ежедневно нанимает технических специалистов.

В эту среду вы узнаете секреты трудоустройства в крупные зарубежные компании из первых рук — от International Tech Recruiter Эльвиры Шустровой (USA).

Обсудим:

👉 Что лучше: размещать резюме на HR-сайтах и ждать, что тебя заметят, или сразу стучаться в компании, которые близки по духу?

👉 Какие отличия есть в оформлении резюме (CV) для российских и зарубежных работодателей? Чем отличается процесс интервью?

👉 Насколько точно по навыкам должен совпадать соискатель с запросом компании? Если я не соответствую всему списку требований — это провал?

👉 Как устроиться в Amazon на удалёнку тестировщиком? А junior-разработчиком?

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

🎙 О спикере: Эльвира Шустрова более пяти лет она живёт в США и занимается наймом технических специалистов в международные компании. В её послужном списке ЦФТ, Unlimint (CardPay), Amazon и другие известные бренды.

🗓 Когда: 27 апреля (среда) в 19:00 мск

📍 Где: митап пройдёт в онлайне в телеграм-канале RelocationDEV. Подписывайтесь на канал, чтобы не пропустить начало трансляции.

До встречи в среду!😉
👍4
Media is too big
VIEW IN TELEGRAM
Kotlin, как работает suspend под капотом

Как компилятор преобразует suspend код, чтобы корутины можно было приостанавливать и возобновлять?

Корутины в Kotlin представлены ключевым словом suspend. Интересно, что там происходит внутри? Как компилятор преобразует suspend блоки в код, поддерживающий приостановку и возобновление работы корутины?

Знание этого поможет понимать, почему suspend функция не возвращает управление, пока не завершится вся запущенная работа и как код может приостановить выполнение без блокировки потоков. Подробнее

#Kotlin #suspend
Расскажите про способы добавления и переключения фрагментов. Как работать с бэкстэком?

Для управления фрагментами используются два класса: FragmentManager и FragmentTransaction.

Для получения FragmentManager используются метод активити getSupportFragmentManager() или метод фрагмента getChildFragmentManager().
FragmentManager начинает транзакцию и возвращает объект FragmentTransaction вызовом метода beginTransaction().

Методы класса FragmentTransaction, которые необходимо знать - add(), remove() и replace().

add() добавляет фрагмент на активити или другой фрагмент. Принимает аргументами containerViewId, в который добавляется фрагмент, инстанс фрагмента, тег.
Другой способ добавить фрагмент - определить в лэйауте с помощью тега <fragment>.

remove() - операция, обратная add(). Удаляет фрагмент.

replace() удаляет все фрагменты, добавленные методом add() в заданный контейнер, и добавляет переданный аргументом фрагмент в контейнер. Параметр tag может быть null.

Эти операции не выполняются сразу же после вызова методов. Метод commit() завершает транзакцию и выполняет операции транзакции.

Метод addToBackStack() добавляет транзакцию в Back Stack. Это значит, что когда пользователь нажмет Back транзакция откатится. addToBackStack() применяется ко всем операциям в транзакции. Например следующий код добавляет транзакцию из трех операций в бэкстэк:

fragmentTransaction
.add(R.id.fragmentContainer1, fragment1)
.add(R.id.fragmentContainer2, fragment2)
.replace(R.id.fragmentContainer1, fragment3)
.addToBackStack("tag")
.commit()


Метод popBackStack() удаляет транзакцию с верхушки бэкстэка, возвращает true, если бэкстэк хранил хотя бы одну транзакцию.

Документация.

#Fragment #android
👍2
Dagger + Anvil: Learning to Love Dependency Injection on Android (Dagger + Anvil: как полюбить внедрение зависимостей на Android)

https://gpeal.medium.com/dagger-anvil-learning-to-love-dependency-injection-on-android-8fad3d5530c9

#android
👍2
Вы мобильный разработчик? Для вас найдутся десятки интересных проектов на GetWork

GetWork — это фриланс-платформа, где собраны задачи разной сложности по разработке мобильных приложений. Поэтому задания подойдут как опытным, так и начинающим мобильным разработчикам.

Средняя оплата за задание: $50. К каждому заданию прилагается концепция приложения и подробное ТЗ. В работе могут использоваться Unity, Kotlin, Flutter, Xamarin, React Native, Cordova и Libgdx.

Если возникнут проблемы, техподдержка платформы поможет их решить. 

Подробности: https://bit.ly/3OuS5Im
👍2
От View к Composable: Быстрый переход к Jetpack Compose с точки зрения Android View (со шпаргалкой)

https://medium.com/@alexstyl/views-to-composables-d715b92c6055

#android #compose
👍3
Подборка каналов для IT специалистов 🎯

Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Вакансии для программистов 📌
https://t.me/progjob

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/bitkoinoff Новости криптовалют

DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео

Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий
👍1👏1
👋🏻 Друзья, хорошие новости!

Давно хотели обучиться мобильной разработке? Школа мобильной разработки SwiftBook открывает бесплатный доступ к первому занятию по курсу «Профессия iOS-разработчик».

Уже сегодня, 2 мая в 20:00 (мск) у вас есть шанс оценить живой формат занятий и узнать, с чего начинается создание мобильных приложений на языке Swift.

⚡️ Тема первой лекции: Константы и переменные. Базовые типы данных

● Краткая история Swift
● Преимущество языка
● Синтаксис языка и основные концепции
● Знакомство с Playground
● Константы и переменные
● Базовые типы данных

Сегодня SwiftBook — это более 10 000 выпускников, которые уже работают в крупных IT компаниях. Обучение проходит под чутким руководством опытного преподавателя и поддержки дружного сообщества.

Регистрация по ссылке ➤ ЗДЕСЬ
👍3🔥1
Каждый экран в вашем iOS-приложении должен быть скроллируемым

В этой статье я расскажу вам, почему каждый основной экран в вашем приложении должен быть помещен в скроллируемое представление.


Подождите, что? Не все в моем приложении должно прокручиваться! Раньше я был с вами согласен, но за последние пять лет я понял, что это почти всегда неверное предположение.

#ios
👍4
Стелем мягкую соломку на жёсткий Flutter: как подготовиться к первому проекту, чтобы не провалить его

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

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

Эта статья будет фонариком в тёмной и неисследованной пещере ужасов под названием «первый проект на Flutter».

#Flutter
👍2
Media is too big
VIEW IN TELEGRAM
Стили в Android. Как организовать темы в проекты

Обзор организации стилей в Android: Theme, ThemeOverlay, TextAppearance, View Style.

0:00 Вступление
0:43 Что такое стиль
2:26 Каналы Android Broadcast
3:36 Наследование стилей
4:29 Типы стилей
6:56 Ссылка на атрибут
7:57 Кодинг. Настройка тем в проекте
19:32 Заключение

#Android
👍1
Изящная обработка сбоев Android-приложения

https://proandroiddev.com/gracefully-handling-android-app-crashes-479c275e1545

#Android
👍3