Используя и изучая приложения с открытым исходным кодом, вы можете научиться, как создавать хорошие приложения самостоятельно.
Ниже перечислены лучшие проекты под Android с открытым исходным кодом. Благодаря им вы сможете узнать массу отличных практик для разработки под Android.
1. Android-приложение с MVP архитектурой
Исходники
Этот репозиторий содержит приложение, которое реализует архитектуру MVP с использованием Dagger2, GreenDao, RxJava2, Fast-Android-Networking и PlaceholderView.
2. Android-приложение с MVVM архитектурой
Исходники
Этот репозиторий содержит приложение, которое реализует архитектуру MVVM с использованием Dagger2, GreenDao, RxJava2, Fast-Android-Networking и PlaceholderView.
3. Google I/O Android-приложение
Исходники
Play Market
Google I/O — это конференция разработчиков, которая проводится каждый год. На ней представлены сотни демонстраций технологий от разработчиков.
Этот проект — Android-приложение для конференции. Приложение поддерживает устройства под управлением Android 5.0+ и оптимизировано для телефонов и планшетов всех форм и размеров.
4. Чертежи архитектуры Google Android
Исходники
Платформа Android обладает большой гибкостью, когда организует и архивирует приложение. Эта свобода может привести к приложениям с большими классами. Это может затруднить тестирование, поддержку и расширение.
Архитектура Android Blueprint предназначена для демонстрации возможных способов помочь в решении этих проблем. Этот проект показывает одно и то же приложение, реализованное много раз с использованием различных архитектурных концепций и инструментов.
Вы можете использовать эти образцы как отправную точку для создания собственных приложений. Здесь основное внимание уделяется структуре кода, архитектуре, тестированию. Однако имейте в виду, что существует множество способов создания приложений с этими архитектурами и инструментами. Сосредоточьтесь на своих собственных приоритетах и не слишком увлекайтесь тем, что можно считать каноническими примерами.
5. Telegram
Исходники
Play Market
Telegram — это приложение для обмена сообщениями с акцентом на скорость и безопасность. Этот мессенджер супер быстрый, простой и бесплатный. Данный репозиторий содержит официальный исходный код андроид-приложения для Telegram.
6. Plaid
Исходники
Приложение под Android, которое способно вдохновить своим дизайном, благодаря отличной реализации material design.
7. Wire
Исходники
Play Market
Это приложение чата полно картин, фильмов, GIF, музыки, эскизов и других форм мультимедиа. Также оно всегда обеспечивает безопасное сквозное шифрование.
8. Андроид-приложение ribot
Исходники
Официальное приложение ribot для Android, в котором реализованы архитектура, инструменты и рекомендации, которые команда поддерживает для платформы Android.
9. Kickstarter
Исходники
Play Market
Kickstarter
10. PocketHub
Исходники
Play Market
GitHub отказался поддерживать приложение, поэтому оно было выпущено «в люди» и поддерживается как публичный проект. Сейчас общество активно работают над переизданием этого приложения в Play Маркет. Это приложение станет духовным преемником оригинального приложения.
11. Простое андроид-приложение с MVP
Исходники
Очень простое приложение, показывающее, как реализовать архитектуру MVP.
38 лучших Open Source Android-проектов на Java
Проекты с открытым исходным кодом являются ценным ресурсом для всех программистов. Вы можете многому научиться, просто изучив исходный код или же создав что-то поверх существующего проекта.
В этом списке лучшие open source приложения для Android, написанные на Java. Среднее число звезд Github в нем – 3,874.
Социальные сети
Kickstarter – официальное приложение платформы.
NewPipe – легковесный фронтэнд для YouTube.
WordPress – официальное приложений платформы.
Новости
Plaid – пример реализации материального дизайна в новостном агрегаторе.
FastHub – клиент для GitHub.
Materialistic – клиент Hacker News в материальном дизайне.
Фото и видео
Telecine – запись видео.
LeafPic – галерея в материальном дизайне.
Продуктивность
K-9 Mail – почтовый клиент.
ownCloud – хранение и организация всего.
AmazeFileManager – файловый менеджер.
Omni-Notes – заметки.
Музыка
Timber – музыкальный плеер.
Phonograph – музыкальный плеер.
Shuttle Music Player – еще один.
Игры
Pixel Dungeon – традиционная аркада в пиксель-арте.
Google Santa Tracker for Android – развлекательное приложение для детей.
2048 – классическая игра с числами.
Мессенджеры
Telegram – исходники того, кого скоро в России закроют.
Signal – приватный мессенджер.
Qksms – красивый SMS-мессенджер.
Медиа
ExoPlayer – медиа-плеер.
VLC – один из лучших плееров для платформы.
AntennaPod – менеджер подкастов.
MovieGuide – приложение для открытия новых фильмов.
Финансы
CoCoin – управление счетами.
Kickmaterial – приложение для краудфандинга.
Bitcoin Wallet Android – кошелек.
GnuCash Android – отслеживание трат.
Архитектура
Android CleanArchitecture – пример чистой архитектуры.
Archi – Standard Android, MVP и MVVM.
Android MVP Architecture – пример MVP.
Утилиты
Shadowsocks – socks5 прокси.
SoundRecorder – диктофон с материальным дизайном.
Справочники
iosched – приложение Google I/O 2017.
Wikipedia Android – официальное приложение энциклопедии.
Погода
SeeWeather – RxJava+RxBus+Retrofit+Glide+Material Design
Android бывает разных форм и размеров, и почти у каждого производителя или производителя смартфонов есть свой уникальный взгляд на операционную систему. Что дает им возможность настраивать Android, так это то, что Android является платформой с открытым исходным кодом, и ее код доступен для свободного ознакомления и настройки. Этот список выходит за рамки вариантов Android, разработанных брендами, а также включает различные варианты, разработанные независимыми разработчиками в виде пользовательских ПЗУ. И так же, как и многочисленные разновидности Android, существует множество приложений Android с открытым исходным кодом, которые очень целеустремленны, хотя они, возможно, не получили того внимания, которого заслуживают.
Более того, если вы сами разработчик и хотите улучшить свои навыки кодирования, вы можете использовать код из этих приложений в качестве справочного материала для разработки собственных приложений или добавления функций в эти приложения без необходимости писать код с нуля. Для потребителей приложения с открытым исходным кодом для Android дают возможность без рекламы бесплатно. Я люблю приложения с открытым исходным кодом для Android и использую их с самого начала. Вот некоторые из моих любимых приложений с открытым исходным кодом для Android, которые вы можете использовать в 2019 году.
Удивительные Android-приложения с открытым исходным кодом в 2019 году
1. VLC Media Player
VLC является известным медиаплеером, который обеспечивает поддержку
Установка: (Бесплатно) (GitHub)
2. Объем A2DP
A2DP Volume, также известный как Android Bluetooth Volume Manager, используется для
Установка: (Бесплатно) (GitHub)
3. Удивить файловый менеджер
Amaze File Manager – это простой в использовании и находчивый файловый менеджер, который выделяется в длинном списке файловых менеджеров благодаря минимальный интерфейс дизайна материала, Помимо чистого интерфейса, быстрая анимация Amaze File Manager, а также возможность выбирать различные темы и даже выбирать цвета для элементов по отдельности – вот что делает его более интересным. Помимо привлечения эстетики, файловый менеджер поражает (да, капризный каламбур был предназначен) у вас есть возможность создавать резервные копии установленных приложений в виде файлов APK и даже восстанавливать их после новой установки. Кроме того, вы можете использовать
Установка: (Бесплатно) (GitHub)
4. AntennaPod
Если вы заинтригованы идеей подкастов, вы наверняка знаете об общих инструментах, таких как iHeartRadio, Google Podcasts и, очевидно, Apple Podcasts / iTunes. Что если приложение позволяет вам находить подкасты из этих приложений в одном месте? AntennaPod делает то же самое и позволяет вам искать и подписываться на широкий спектр источников подкастов. Кроме того, вы также можете введите URL-адрес вручную и начните потоковую передачу или загрузку ваши любимые подкасты. AntennaPod – одно из самых полезных приложений с открытым исходным кодом для Android, учитывая варианты, которые он предлагает для воспроизведения. Приложение дает вам возможность тонкая настройка скорости воспроизведения, изменение громкости между левым и правым каналами, преобразовать стерео выход в моно, Кроме того, вы также можете установить таймер отключения с возможностью установки будильника в конце таймера, если вы хотите ограничить время, которое вы тратите на прослушивание подкастов.
Установка: (Бесплатно) (GitHub)
5. Коди
Kodi – кроссплатформенный медиаплеер с открытым исходным кодом, который предлагает вам почти бесконечные возможности для потоковой передачи фильмов, музыки, телепередач и даже прямого эфира, Вы можете добавить множество надстроек и репозиториев Kodi, которые помогут вам загружать или транслировать контент или управлять своей библиотекой. Помимо возможности просмотра контента из очень большого количества источников, вы также можете играть в ретро игры на Kodiи даже тему медиаплеера в соответствии с вашим настроением и предпочтениями. Помимо Android, Kodi также можно установить на Windows, Mac, Linux, iOS, а также на различные ТВ-боксы и потоковые джойстики совершенно бесплатно.
Установка: (Бесплатно) (GitHub)
6. Сигнал Messenger
Сигнал является платформой обмена сообщениями с открытым исходным кодом, которая поставляется с сквозное шифрование, Signal Messenger уже давно является флагманом для зашифрованных и защищенных разговоров, а также популярные мессенджеры, такие как WhatsApp, Facebook Messenger, Google Allo, используют криптографический протокол Signal для обеспечения секретности отправляемых и получаемых вами сообщений. Интерфейс обмена сообщениями очень прост и удобен в использовании и имеет встроенный темный режим. Наконец, с точки зрения конфиденциальности, есть много вариантов, включая таймер автоблокировки, возможность использовать клавиатуру в режиме инкогнито, ограничение скриншотов, а также включение или отключение резервного копирования – среди других вариантов.
Установка: (Бесплатно) (GitHub)
7. Орбот
Orbot является Приложение с открытым исходным кодом для Android который основан на концепции Tor (Луковый маршрутизатор). Это помогает скрыть вашу личность в Интернете и бороться с силами, которые стремятся обуздать вашу онлайн-свободу, направляя интернет-трафик через более чем 7000 слоев. После включения Orbot может возникнуть замедление скорости сети, но ваша личность будет полностью защищена. Кроме того, вы можете выборочно выбирать, какие приложения используют сеть, а какие работают с Orbot, чтобы обойти географические ограничения на определенный контент.
Установка: (Бесплатно) (GitHub)
8. NewPipe
NewPipe – это приложение с открытым исходным кодом для Android, которое позволяет вам просматривать и воспроизводить видео YouTube, не заставляя вас входить в свой аккаунт Google, Хотя вы можете просто просматривать трендовый контент, вы также можете импортировать свои подписки из YouTube и SoundCloud и загружать их в NewPipe – без отслеживания Google. Вы также можете экспортировать и делиться этими подписками с друзьями. Видео открываются в новом окне, и игрок получает жесты для яркости и громкости. Используя NewPipe, вы также можете загружать видео, воспроизводить их в фоновом режиме, а также во всплывающем окне. Это одно из моих самых любимых приложений с открытым исходным кодом для Android.
Установка: (Бесплатно) (GitHub)
9. Мороз для фейсбука
Facebook, несмотря на растущий скептицизм со стороны пользователей со времен дела Cambridge Analytica в прошлом году, был самой популярной социальной сетью, особенно из-за огромного количества вариантов и функций. Тем не менее, приложение Facebook для Android является одним из наиболее ресурсоемких и ресурсоемких приложений, что часто приводит к дрожанию на смартфонах среднего и начального уровня. Мороз для фейсбука легкое и открытое приложение который загружает ваш фид Facebook быстрее официального приложения без ущерба для какой-либо функции. С другой стороны, он добавляет такие функции, как комплексные опции для оформления интерфейса, а также возможность добавлять несколько учетных записей одновременно. Frost также позволяет воспроизводить истории в PiP и даже отвечать на сообщения, не устанавливая отдельное приложение Messenger. Frost для Facebook может быть хорошей альтернативой, если вы застряли между использованием Facebook Lite и мобильного сайта.
Установка: (Бесплатно) (GitHub)
10. NetGuard
Есть много приложений, которые работают в фоновом режиме и используют Интернет без вашей информации. Независимо от того, чтобы ограничить отправку данных этими приложениями на свои серверы или сохранить ограниченную квоту в Интернете, вы можете использовать NetGuard, что делает его одним из наиболее полезных приложений с открытым исходным кодом для Android. NetGuard является приложение брандмауэра, которое позволяет блокировать доступ к Интернету для определенных приложений, Он имеет простой интерфейс с иконками для Wi-Fi и мобильного интернета рядом с каждым приложением, и вы просто включить или отключить доступ в Интернет для каждого приложения, просто нажав на эти значки, Кроме того, вы также можете выбрать конкретные экземпляры, такие как блокировка экрана, роуминг или состояние включения / выключения экрана, чтобы применить эти настройки, если вы хотите настроить элементы управления.
Установка: (Бесплатно) (GitHub)
11. Этар
Etar – это легкое приложение с открытым исходным кодом для Android, которое отображает события в ежедневной, еженедельной, ежемесячной и повестке дня. Интерфейс использует элементы дизайна материала и позволяет выбирать между светлыми, темными и полностью черными темами, а также дает возможность настраивать цвета акцента. Помимо этого, Этар синхронизирует все события, которые вы добавляете с учетными записями Google Calendar или Microsoft Exchange, Кроме того, вы можете выбрать частное событие, чтобы его содержимое не отображалось на главном экране, а с помощью интеграции с Календарем Google вы также можете приглашать других участников на конкретное мероприятие,
Установка: (Бесплатно) (GitHub)
12. Pixel Dungeon
Pixel Dungeon – это сложная и захватывающая игра, которая попадает под эгиду приложений с открытым исходным кодом для Android. С пиксельная графика и интуитивно понятный геймплейPixel Dungeon – это ролевая игра о сражениях с мегами крысами, летучими мышами и, очевидно, некоторыми монстрами. По пути вы должны взять что-нибудь поесть и некоторые полезные предметы, такие как ключи от открытых дверей, а также оружие, такие как мечи, чтобы сражаться с монстрами на вашем курсе. Игра привлекает ваше любопытство и может быть отличное время и скука,
Установка: (Бесплатно) (GitHub)
Pixel Dungeon, возможно, является одним из наиболее реплицированных приложений с открытым исходным кодом для Android, и его легко найти. несколько вилок в магазине Google Play, каждый из которых предлагает опыт, отличный от оригинальной игры.
13. Timber Music Player
Timber – это гибкий музыкальный проигрыватель с открытым исходным кодом, который позволяет вам настроить свой опыт прослушивания музыки в значительной степени. В то время как вы получаете базовые функции настройки, такие как изменение темы или цветов акцента, есть также возможность выбрать один из четырех различных интерфейсов для окна «Сейчас исполняется». Помимо этого, плеер может автоматически получать тексты песен, а также обложки альбомов для дорожки, в то же время поддержка скробблера LastFM, Timber также создает списки воспроизведения на основе треков, которые вы недавно добавили на свое устройство или прослушали чаще всего. Наконец, вы также можете выбрать, какая из трех – Песни, Альбомы или Исполнители – будет отображаться в качестве стартовой страницы.
Установка: (Бесплатно) (GitHub)
14. Омни Ноты
Если вы считаете, что Google Keep является наиболее универсальным приложением для создания заметок, Omni Notes может доказать, что вы не правы. Приложение поставляется с интерфейсом дизайна материала и дает вам возможность выполнять такие действия, как добавление напоминания, архивирование, удаление в пакете а также объединить выбранные заметки вместе. Кроме того, вы можете сортировать заметки по дате создания, последней модификации или дате напоминания. Вы также можете установить пароль для защиты заметок, а также резервное копирование и восстановление этих заметок либо локально, либо из вашей учетной записи Springpad.
Установка: (Бесплатно) (GitHub)
15. Слайд для Reddit
Как видно из названия, Slide – это клиент Reddit, который также является приложением с открытым исходным кодом, доступным на Android. Первое, что Слайд просит вас в начале, это настроить основной интерфейс и цвета акцента, а также цвет фона. Навигация в приложении во многом зависит от жеста (или слайда)s делая его более интерактивным, чем приложение Reddit. Он не только загружается быстрее официального, но и имеет больше возможностей сортировки, Вы можете просматривать Reddit без входа в систему, а также искать конкретного пользователя с помощью специальной опции «Перейти к профилю» в меню гамбургера. Кроме того, иерархия комментариев координируется по цвету который может быть слишком подавляющим на начальном этапе, но добавляет веселья серьезному и несколько пугающему поведению на первой полосе интернета. Но лучшая часть о Slide защищает ваш канал Reddit от любой рекламы.
Установка: (Бесплатно) (GitHub)
СМОТРИ ТАКЖЕ: 15 лучших игр для Android TV, в которые стоит поиграть
Большие Android-приложения с открытым исходным кодом, которые вы должны попробовать
Приложения с открытым исходным кодом для Android не только предоставляют отличные возможности для освоения и изучения технологий, но также могут порадовать тех, кто увлекается решениями «сделай сам». Протоколы с открытым исходным кодом вдохновляют сообщество на самом деле не для получения финансового вознаграждения, а для страсти к развитию и предвидения для более технологичного технологического будущего.
Таким образом, будь то в целях обучения или отдыха от порочной рекламной сети, отслеживающей использование вами интернета, вы можете положиться на Android-приложения с открытым исходным кодом, которые помогут вам. Как вы думаете, мы можем включить в этот список другие приложения с открытым исходным кодом для Android? Дайте нам знать в комментариях ниже.
Привет, дорогие друзья! Сегодня я представляю вам подборку с классными и качественными UI исходниками для создания мобильных приложений! Особенно эта подборка будет полезна для мобильных дизайнеров и разработчиков.
Спасибо http://naldzgraphics.net и рекомендую:
Бесплатная UI подборка для дизайнеров приложений — Lookamore
Скачать
Бесплатные UI исходники от Android
Скачать
UI исходники для создания коммерческого приложения
Скачать
Отличные UI для мобильных дизайнеров
Скачать
UI исходники для создания приложения по редактированию фото
Скачать
UI элементы от Android L 5.0
Скачать
Крутые и бесплатные UI для мобильных дизайнеров
Скачать
UI исходники для создания музыкального приложения
Скачать
Классные исходники от Android Lollipop
Скачать
UI элементы от Instagram
Скачать
Классные UI от Android
Скачать
Крутые UI в стиле Material для дизайнеров приложений
Скачать
Исходники UI — Nerdial
Скачать
Исходники для создания мобильного интернет магазина
Скачать
Скачать классные UI бесплатно
Скачать
Android: Open Source
Статья проплачена кошками — всемирно известными производителями котят.
Если статья вам понравилась, то можете поддержать проект.
Здесь будут представлены описания продуктов с открытыми исходными кодами. Наиболее известным репозиторием для таких программ является GitHub, символом которого является Octocat (Кот-осьминог).
CamTimer
Камера с таймером. Вы можете выбрать нужный интервал — 5 сек, 10 сек, 15 сек и отбежать на нужное расстояние. Через указанное время камера сработает. Также можно выбрать количество кадров (до 4-х). Может пригодиться.
dozingcat/CamTimer · GitHub. Обратите внимание на псевдоним автора, наш человек.
AnkiDroid
AnkiDroid является приложением, использующим флэш-карточки для запоминания иностранных слов и других данных.
Домашняя страница https://code.google.com/p/ankidroid/. Сами исходники находятся на ГитХабе
Виджет Колёсико
Wheel widget for Android — интересный компонент для вращения элементов, как в игровых автоматах. Не пробовал.
apps-for-android
Набор из нескольких программ, написанных программистами Google. Проект старый, но можно встретить любопытные примеры.
Shelves — книжная полка
Каталог книг — можно отсканировать штрих-код и узнать все сведения о книге. Приложение разрабатывалось достаточно давно, но подойдёт для изучения хорошого кода.
Page Curl for Android — листаем страницы
Page Curl for Android — красивый компонент на Canvas с эффектом листания страниц. На видео можете посмотреть эффект в действии. Переключение идёт между двумя картинками.
Android Page Curl
Pretty Painter
Стандартная рисовалка — вы можете выбрать несколько видов кистей и цвет для рисования. Свои шедевры можно сохранить.
Описание от автора на Хабре — Pretty Painter – мое первое приложение под Android
Исходники на GitHub
Wikipedia
List of open source Android applications — Обширный список приложений с открытым исходным кодом, разбитых по категориям (игры, утилиты и пр.).
Apps for Android
Sample Applications for the Android platform — Примеры приложений Google для Android.
A cook book for the Android platform — книга рецептов. Можно ввести название рецепта, ингридиенты, последовательность приготовления, а также отсылать SMS со списком ингридиентов. Старый проект.
Реклама
10 лучших приложений с открытым исходным кодом
У приложений с открытым исходным кодом есть много преимуществ. Они являются более гибкими и нацелены на пользователей, а сообщество пользователей, в свою очередь, помогает им развиваться.
Кстати, один из самых популярных и мощных проектов с открытым исходным кодом – это сама операционная система Android. Особенно это важно для программистов, которые понимают этот код.
Кроме самой ОС есть множество отличных приложений с открытым исходным кодом на Android. Некоторые из них мы хотим обсудить в этой статье.
FireFox
Firefox является одним из самых популярных проектов с открытым исходным кодом. Это один из самых известных браузеров, который имеет мобильные и десктопные приложения. Он имеет все основные функции, включая кросс-платформенную синхронизацию, режим конфиденциальности, настройки, закладки и так далее.
Firefox претерпел серьёзные изменения в 2018 году касаемо удобства и оптимизации. Кстати, он абсолютно бесплатный. Существует также бета-версия для тех, кто достаточно храбр, чтобы попробовать новые функции.
Google Chrome
Google Chrome – один из самых популярных браузеров на сегодня. Браузер имеет открытый код в своём проекте Chromium. В нём есть некоторые собственные особенности, но большая часть Chrome использует наработки Chromium. Более того, многие браузеры используют Chromium в качестве своей базы.
Пожалуй, многие знакомы с Google Chrome, его функциями и возможностями. Но у него также есть несколько приложений, в которые многие функции внедряются раньше (например, для их тестирования). К ним относятся Chrome Beta, Chrome Dev и Chrome Canary. Все они бесплатны.
Kodi
Kodi – популярное приложение с открытым исходным кодом. Хотя, на самом деле оно не очень подходит для смартфонов. Это больше ориентировано на приставки Android. Это приложение для медиацентра с быстрым доступом к множеству медиа, включая фотографии, видео и музыку. Оно также поддерживает различные дополнения, хотя некоторые из них сомнительны, и мы не можем их рекомендовать. Но всё-таки Kodi многим может понравиться, к тому же это абсолютно бесплатное приложение с открытым исходным кодом.
Lawnchair Launcher
Lawnchair Launcher – одно из новых приложений с открытым исходным кодом. Это лаунчер для Android. Он очень похож на Pixel Launcher, за исключением некоторого количества функций. Например, интеграция Google Now (с надстройкой), настройка значков, изменяемый размер значка, режим размытия и другие настройки.
Приложение также бесплатно, с открытым исходным кодом и множеством удобных функций. Оно отлично подходит для тех, кто любит минимализм, но всё же хочет повысить функциональность своей операционной системы.
Open Camera
Open Camera – приложение с открытым исходным кодом. Оно заменяет (или дополняет) основное приложение камеры для большей функциональности. Приложение включает в себя полное ручное управление (если позволяет устройство), настраиваемые горячие клавиши, поддержку HDR, виджет и поддержку некоторых внешних микрофонов для видео.
Некоторые рекомендуют придерживаться стокового приложения камеры, ведь обычно оно хорошо оптимизировано для конкретного устройства. Однако, если вы хотите перейти на стороннее приложение с открытым исходным кодом – это очень хороший вариант.
Phonograph
Phonograph – одно из немногих приложений для музыки с открытым исходным кодом. Остальные тоже хороши, но это нам понравилось лучше всего. Оно обладает материальным дизайном, что не всегда встретишь даже в популярных плеерах. Кроме того, приложение включает в себя темы, интеграцию Last.fm, редактирование тегов, плейлисты, виджеты и многое другое.
Кстати, к этой категории также можно отнести Shuttle – ещё одно замечательное приложение с открытым исходным кодом.
QKSMS
QKSMS – редкое приложение для SMS с открытым исходным кодом. Он поставляется со всеми стандартными функциями, включая настройку, MMS, функции конфиденциальности, поддержку Wear OS (Android Wear), поддержку TalkBack и чёрную тему для экранов AMOLED.
Приложения от Simple Mobile Tools
Simple Mobile Tools – разработчик в Google Play. Они имеют целый ряд приложений с открытым исходным кодом, включая календарь, галерею, приложение для рисования, приложение для контактов, приложение для заметок, файловый менеджер, фонарик, музыкальный плеер, камеру, часы и так далее. Вы можете заменить основные приложения на вашем устройстве, и все они бесплатны и с открытым исходным кодом.
Telegram и Signal Private Messenger
Telegram и Signal Private Messenger – два отличных приложения с открытым исходным кодом для обмена сообщениями. Они позволяют отправлять сообщения, изображения, файлы и так далее. Они оба поддерживают текстовые и голосовые чаты, шифрование «End-to-end», групповые чаты и многое другое. Исходный код позволяет аудиторам безопасности проверять эти приложения, чтобы убедиться, что их безопасность на высоте.
VLC
VLC является одним из самых популярных медиа-плееров на любой платформе. Приложение доступно на большем количестве платформ, чем большинство других медиа-плееров. Кроме того, оно имеет открытый исходный код и поддерживает ряд необычных форматов, таких как DVD ISO, прямые потоковые ссылки и аудиокодеки.
Тем не менее мы не можем рекомендовать его в качестве основного медиа-плеера, потому что он не совсем удобен. В остальном это действительно интересное приложение.
Если мы пропустили какие-либо отличные приложения с открытым исходным кодом, расскажите нам о них в комментариях! Вы также можете ознакомиться с нашими последними списками приложений и игр для Android! Вы также можете ознакомиться с открытым исходным кодом для всех этих приложений по следующим ссылкам:
[Всего: 1 Средний: 5/5]Привет, Хабр! Летом я выступал на Summer Droid Meetup с докладом про сборку Android-приложения. Видеоверсию можно найти здесь: habr.com/ru/company/funcorp/blog/462825. А для тех, кто больше любит читать, я как раз и написал эту статью.
Речь пойдёт о том, что же это такое — Android-приложение. Мы соберём разными способами Hello, world!: начнём с консоли и посмотрим, что вообще происходит под капотом систем сборки, потом вернёмся немного в прошлое, вспомним про Maven и изучим современные решения Bazel и Buck. И, наконец, всё это сравним.
Мы задумались о возможной смене системы сборки, когда начинали новый проект. Нам казалось, что это неплохая возможность поискать какие-нибудь альтернативы Gradle. Тем более, что делать это проще на старте, чем переводить существующий проект. К этому шагу нас подтолкнули следующие недостатки Gradle:
- у него определённо есть проблемы с инкрементальной сборкой, хотя видны подвижки в этом направлении;
- он плохо справляется с очень большими монолитными проектами;
- бывает, что весьма долго стартует демон;
- требователен к машине, на которой выполняется.
APK
Прежде всего вспомним, из чего состоит Android-приложение: скомпилированного кода, ресурсов и AndroidManifest.xml.
Исходники находятся в файле classes.dex (файлов может быть несколько, в зависимости от величины приложения) в специальном dex-формате, с которым умеет работать виртуальная машина Android. Нынче это ART, на более старых девайсах — Dalvik. Помимо этого можно встретить папку lib, где по подпапкам разложены нативные исходники. Они будут носить названия в зависимости от целевой архитектуры процессора, например x86, arm и т.д. Если вы используете exoplayer, то lib у вас наверняка присутствует. И папка aidl, которая содержит в себе интерфейсы межпроцессного взаимодействия. Они пригодятся, если нужно обратиться к сервису, запущенному в другом процессе. Такие интерфейсы используются и в самом Android, и внутри GooglePlayServices.
Различные некомпилируемые ресурсы вроде картинок лежат в папке res. Все компилируемые ресурсы, такие как стили, строки и т.д., сливаются в файл resource.arsc. В папку assets, как правило, складывают всё, что не укладывается в ресурсы, например кастомные шрифты.
Кроме всего этого, в APK содержится AndroidManifest.xml. В нём мы описываем различные компоненты приложения, такие как Activity, Service, разные разрешения и т.д. Он лежит в бинарном виде, и чтобы заглянуть внутрь, его надо будет сперва сконвертировать в человекочитаемый файл.
CONSOLE
Теперь, когда мы знаем, из чего состоит приложение, можем попробовать собрать Hello, world! из консоли, используя инструменты, которые предоставляет Android SDK. Это довольно важный этап для понимания того, как работают системы сборки, потому что все они в той или иной мере опираются на эти утилиты. Так как проект написан на Kotlin, нам потребуется его компилятор для командной строки. Его несложно загрузить отдельно.
Сборку приложения можно поделить на следующие этапы:
- загружаем и распаковываем все библиотеки, от которых зависит проект. В моём случае это библиотека обратной совместимости appcompat, которая, в свою очередь, зависит от appcompat-core, поэтому выкачиваем и её;
- генерируем R.java. Этот чудесный класс содержит в себе идентификаторы всех ресурсов в приложении и используется для того, чтобы обращаться к ним в коде;
- компилируем исходники в байт-код и транслируем его в Dex, потому что виртуальная машина Android с обычным байт-кодом работать не умеет;
- упаковываем всё в APK, но сначала выравниваем все несжимаемые ресурсы, такие как картинки, относительно начала файла. Это позволяет ценой совершенно незначительного роста размера APK существенно ускорить его работу. Таким образом система напрямую может отображать ресурсы в оперативную память, используя функцию mmap().
- подписываем приложение. Эта процедура защищает целостность APK и подтверждает авторство. И благодаря этому, например, Play Market может проверить, что приложение было собрано именно вами.
скрипт сборки
function preparedir() {
rm -r -f $1
mkdir $1
}
PROJ="src/main"
LIBS="libs"
LIBS_OUT_DIR="$LIBS/out"
BUILD_TOOLS="$ANDROID_HOME/build-tools/28.0.3"
ANDROID_JAR="$ANDROID_HOME/platforms/android-28/android.jar"
DEBUG_KEYSTORE="$(echo ~)/.android/debug.keystore"
GEN_DIR="build/generated"
KOTLIN_OUT_DIR="$GEN_DIR/kotlin"
DEX_OUT_DIR="$GEN_DIR/dex"
OUT_DIR="out"
libs_res=""
libs_classes=""
preparedir $LIBS_OUT_DIR
aars=$(ls -p $LIBS | grep -v /)
for filename in $aars;
do
DESTINATION=$LIBS_OUT_DIR/${filename%.*}
echo "unpacking $filename into $DESTINATION"
unzip -o -q $LIBS/$filename -d $DESTINATION
libs_res="$libs_res -S $DESTINATION/res"
libs_classes="$libs_classes:$DESTINATION/classes.jar"
done
preparedir $GEN_DIR
$BUILD_TOOLS/aapt package -f -m \
-J $GEN_DIR \
-M $PROJ/AndroidManifest.xml \
-S $PROJ/res \
$libs_res \
-I $ANDROID_JAR --auto-add-overlay
preparedir $KOTLIN_OUT_DIR
compiledKotlin=$KOTLIN_OUT_DIR/compiled.jar
kotlinc $PROJ/java $GEN_DIR -include-runtime \
-cp "$ANDROID_JAR$libs_classes"\
-d $compiledKotlin
preparedir $DEX_OUT_DIR
dex=$DEX_OUT_DIR/classes.dex
$BUILD_TOOLS/dx --dex --output=$dex $compiledKotlin
preparedir $OUT_DIR
unaligned_apk=$OUT_DIR/unaligned.apk
$BUILD_TOOLS/aapt package -f -m \
-F $unaligned_apk \
-M $PROJ/AndroidManifest.xml \
-S $PROJ/res \
$libs_res \
-I $ANDROID_JAR --auto-add-overlay
cp $dex .
$BUILD_TOOLS/aapt add $unaligned_apk classes.dex
rm classes.dex
aligned_apk=$OUT_DIR/aligned.apk
$BUILD_TOOLS/zipalign -f 4 $unaligned_apk $aligned_apk
$BUILD_TOOLS/apksigner sign --ks $DEBUG_KEYSTORE $aligned_apk
По цифрам получается, что чистая сборка занимает 7 секунд, и инкрементальная от неё не отстаёт, потому что мы ничего не кешируем и каждый раз пересобираем всё заново.
MAVEN
Он был разработан ребятами из Apache Software Foundation для сборки Java-проектов. Билд-конфиги для него описываются на языке XML. Ранние ревизии Maven собирались Ant, а сейчас они перешли на последний стабильный релиз.
Плюсы Maven:
- он поддерживает кеширование артефактов сборки, т.е. инкрементальный билд должен быть быстрее чистого;
- умеет разрешать сторонние зависимости. Т.е. Когда вы в конфиге Maven или Gradle указываете зависимость от сторонней библиотеки, вам не нужно заботиться о том, от чего она зависит;
- есть куча подробной документации, потому что он уже весьма давно на рынке.
- и он может быть привычным механизмом сборки, если вы недавно пришли в мир Android-разработки из бэкенда.
Минусы Maven:
- зависит от версии Java, установленной на машине, на которой происходит сборка;
- Android-плагин сейчас поддерживается сторонними разработчиками: лично я считаю это весьма существенным недостатком, потому что в один прекрасный день они могут перестать это делать;
- XML не очень подходит для описания билд-конфигов в силу своей избыточности и громоздкости;
- ну и как мы позднее увидим, он работает медленнее Gradle, по крайней мере на тестовом проекте.
Для сборки мы должны создать pom.xml, который содержит описание нашего проекта. В заголовке указываем базовые сведения о собираемом артефакте, а так же версию Kotlin.билд-конфиг pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myapplication</artifactId>
<version>1.0.0</version>
<packaging>apk</packaging>
<name>My Application</name>
<properties>
<kotlin.version>1.3.41</kotlin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<sdk>
<platform>28</platform>
<buildTools>28.0.3</buildTools>
</sdk>
<failOnNonStandardStructure>false</failOnNonStandardStructure>
</configuration>
</plugin>
</plugins>
</build>
</project>
По цифрам всё выходит не слишком радужно. Чистая сборка занимает порядка 12 секунд, тогда как инкрементальная — 10. Это говорит о том, что Maven как-то плохо переиспользует артефакты предыдущих сборок, либо, что на мой взгляд более вероятно, плагин для сборки Android-проекта мешает ему это делать
Используют сейчас всё это, я думаю, прежде всего создатели плагина — ребята из simpligility. Больше достоверных сведений об этом вопросе найти не удалось.
BAZEL
Bazel изобрели инженеры в недрах Google для сборки своих проектов и относительно недавно перевели его в open source. Для описания билд-конфигов используется питоноподобный Skylark или Starlark, оба названия имеют место быть. Собирается с использованием своего же последнего стабильного релиза.
Плюсы Bazel:
- поддержка разных языков программирования. Если верить документации, то он умеет собирать проекты для iOs, Android или даже бэкенда;
- умеет кешировать ранее собранные артефакты;
- умеет работать с Maven-зависимостями;
- у Bazel очень крутая, на мой взгляд, поддержка распределённых проектов. Ему можно в качестве зависимостей указывать конкретные ревизии git-репозиториев, и он будет сам их выгружать и кешировать в процессе сборки. Для поддержки масштабируемости Bazel умеет, например, распределять различные таргеты по облачным билдсерверам, что позволяет очень быстро собирать громоздкие проекты.
Минусы Bazel:
- всю эту прелесть весьма тяжело поддерживать, потому что билд-конфиги очень подробные и описывают сборку на низком уровне;
- помимо прочего, кажется, что Bazel сейчас активно развивается. Из-за этого некоторые примеры не собираются, а те, что собираются, могут использовать уже устаревший функционал, который помечен как deprecated;
- документация сейчас также оставляет желать лучшего, особенно в сравнении с Gradle;
- на маленьких проектах прогрев и анализ билд-конфигов может занимать больше времени, чем сама сборка, что не есть хорошо, на мой взгляд.
Концептуально базовый конфиг Bazel состоит из WORKSPACE, где мы описываем всякие глобальные вещи для проекта, и BUILD, который содержит непосредственно таргеты для сборки.
Опишем WORKSPACE. Так как у нас Android-проект, то первое, что мы конфигурируем, — это Android SDK. Также тут импортируется правило для выгрузки конфигов. Потом, так как проект написан на Kotlin, мы должны указать правила для него. Тут мы делаем это, ссылаясь на конкретную ревизию прямо из git-репозитория.WORKSPACE
android_sdk_repository(
name = "androidsdk",
api_level = 28,
build_tools_version = "28.0.3"
)
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
#
# KOTLIN RULES
#
RULES_KOTLIN_VERSION = "990fcc53689c8b58b3229c7f628f843a60cb9f5c"
http_archive(
name = "io_bazel_rules_kotlin",
url = "https://github.com/bazelbuild/rules_kotlin/archive/%s.zip" % RULES_KOTLIN_VERSION,
strip_prefix = "rules_kotlin-%s" % RULES_KOTLIN_VERSION
)
load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories", "kt_register_toolchains")
kotlin_repositories()
kt_register_toolchains()
Теперь приступим к BUILD.
Сперва импортируем правило для сборки Kotlin и описываем то, что хотим собрать. В нашем случае это Android-приложение, поэтому используем android_binary, где задаём манифест, минимальный SDK и т.д. Наше приложение будет зависеть от исходников, поэтому упоминаем их в deps и переходим к тому, что они собой представляют и где их найти. Код также будет зависеть от ресурсов и библиотеки appcompat. Для ресурсов используем обычный таргет для сборки андроидных исходников, но задаём ему только ресурсы без java-классов. И описываем пару правил, которые импортируют сторонние библиотеки. Тут также упоминается appcompat_core, от которой зависит appcompat.
BUILDload("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_android_library")
android_binary(
name = "app",
custom_package = "com.example.myapplication",
manifest = "src/main/AndroidManifest.xml",
manifest_values = {
"minSdkVersion": "15",
},
deps = [
":lib",
],
)
kt_android_library(
name = "lib",
srcs = glob(["src/main/java/**/*"]),
deps = [
":res",
":appcompat",
],
)
android_library(
name = "res",
resource_files = glob(["src/main/res/**/*"]),
manifest = "src/main/AndroidManifest.xml",
custom_package = "com.example.myapplication",
)
aar_import(
name = "appcompat",
aar = "libs/appcompat.aar",
deps = [
":appcompat_core",
]
)
aar_import(
name = "appcompat_core",
aar = "libs/core.aar",
)
По цифрам для такого маленького проекта всё выглядит печально. Больше половины минуты на чистую сборку Hello, world! — очень много. Время инкрементальной сборки также далеко от совершенства.
Bazel используют его создатели (Google) для каких-то своих проектов, в том числе серверных, а также Dropbox и Huawei, которые собирают им мобильные приложения. И небезызвестный Dagger 2 также собирается Bazel.
BUCK
Его придумали перебежчики из Google в Facebook. Для описания конфигов раньше он использовал Python, а потом мигрировал на упоминавшийся сегодня Skylark. Собирается же он, внезапно, с помощью системы Ant.
Плюсы Buck:
- поддерживает разные языки программирования и умеет собирать как Andriod, так и iOS;
- умеет кешировать ранее собранные артефакты;
- для Buck сделали свою реализацию dex, которая работает пошустрее стандартной и висит вместе с демоном системы. Так они экономят время на инициализации dex. Инженеры действительно многое оптимизировали. Например, Buck не собирает код, который зависит от библиотеки, если при изменении внутренностей библиотеки не изменился интерфейс. Аналогично и для ресурсов: если идентификаторы не поменялись, то при изменении ресурсов код не пересобирается.
- есть плагин, который умеет прятать Buck за гредловским конфигом. Т.е. вы получаете примерно обычный Gradle-проект, который на самом деле собирается через Buck.
Минусы Buck:
- его так же сложно поддерживать, как Bazel. Т.е. тут так же надо описывать низкоуровневые правила, четко описывающие процесс сборки;
- кроме прочего, Buck не умеет сам разрешать Maven-зависимости.
Итак, как выглядит конфиг сборки Hello, world! посредством Buck? Тут мы описываем один файл конфигурации, где указываем, что хотим собирать Android-проект, который будет подписан дебажным ключом. Приложение аналогичным образом будет зависеть от исходников — lib в массиве deps. Дальше идёт таргет с настройками подписи. Я использую дебажный ключ, который идёт в комплекте с Android SDK. Сразу за ним следует таргет, который соберёт нам исходники Kotlin. Аналогично Bazel, он зависит от ресурсов и библиотек совместимости.
Описываем их. Для ресурсов в Buck есть отдельный таргет, поэтому велосипеды не пригодятся. Следом идут правила для скачанных сторонних библиотек.
BUILDandroid_binary(
name = 'app',
manifest = 'src/main/AndroidManifest.xml',
manifest_entries = {
'min_sdk_version': 15,
},
keystore = ':debug_keystore',
deps = [
':lib',
],
)
keystore(
name = 'debug_keystore',
store = 'debug.keystore',
properties = 'debug.keystore.properties',
)
android_library(
name = 'lib',
srcs = glob(['src/main/java/*.kt']),
deps = [
':res',
':compat',
':compat_core',
],
language = 'kotlin',
)
android_resource(
name = 'res',
res = "src/main/res",
package = 'com.example.myapplication',
)
android_prebuilt_aar(
name = 'compat',
aar = "libs/appcompat.aar",
)
android_prebuilt_aar(
name = 'compat_core',
aar = "libs/core.aar",
)
Собирается всё это дело очень резво. Чистая сборка занимает немногим более 7 секунд, тогда как инкрементальная — совершенно незаметные 200 миллисекунд. Я думаю, это очень хороший результат.
Так делают в Facebook. Кроме своего флагманского приложения, они собирают им Facebook Messenger. И Uber, которые сделали плагин для Gradle и Airbnb с Lyft.
Выводы
Теперь, когда мы поговорили про каждую систему сборки, можно сравнить их между собой на примере Hello, world! Консольная сборка радует своей стабильностью. Время выполнения скрипта из терминала можно считать эталонным для сборки чистых билдов, потому что сторонние затраты на парсинг скриптов тут минимальны. Явным аутсайдером я бы в данном случае назвал Maven за чрезвычайно незначительное убыстрение инкрементальной сборки. Bazel очень долго парсит конфиги и инициализируется: есть мысль, что он кеширует как-то результаты инициализации, потому что инкрементальная сборка у него проходит существенно быстрее чистой. Buck — бесспорный лидер это подборки. Очень быстрая как чистая, так и инкрементальные сборка.
Сравним теперь все за и против. Не буду включать Maven в сравнение, потому что он явно проигрывает Gradle и уже практически не используется на рынке. Buck и Bazel я объединю, потому что они обладают примерно одинаковыми достоинствами и недостатками.
Итак, про Gradle:
- первое и, на мой взгляд, самое важное — он простой. Очень простой;
- из коробки разруливает и выгружает зависимости;
- для него очень много самых разных обучалок и документации;
- активно поддерживается как Google, так и сообществом. Здорово интегрирован с Android Studio, текущим флагманским инструментом разработки. И все новые фичи для сборки Android-приложения сперва появляются именно в Gradle.
Про Buck/Bazel:
- определённо могут быть очень быстрыми в сравнении с Gradle. Полагаю, что это особенно заметно на очень больших проектах
- можно держать один проект, в котором будут исходники и iOS, и Android, и собирать их одной системой сборки. Это позволяет шарить между платформами некоторые части приложения. Например, так собирается Chromium;
- заставляют подробно описывать зависимости и таким образом буквально принуждают разработчика к многомодульности.
Не забудем и про минусы.
Gradle за свою простоту расплачивается тем, что он медленный и неэффективный.
Buck/Bazel же, напротив, из-за своей скорости страдают от необходимости подробнее описывать в конфигах процесс сборки. Ну и так как появились на рынке они относительно недавно, то документации и разных шпаргалок немного.
iFUNNY
Возможно, у вас возник вопрос, как мы собираем iFunny. Так же, как и многие — используя Gradle. И на то есть причины:
- Пока непонятно, какой выигрыш в скорости сборки нам это даст. Чистая сборка iFunny занимает почти 3 минуты, а инкрементальная — около минуты, что на самом деле не особо долго.
- Билд-конфиги Buck или Bazel сложнее поддерживать. В случае Buck нужно ещё и следить за актуальностью подключенных библиотек и библиотек, от которых они зависят.
- Это банально дорого — переводить существующий проект с Gradle на Buck/Bazel, особенно в условиях непонятного профита.
Если у вас проект собирается больше 45 минут и в команде Android-разработки человек 20, то есть смысл задуматься о смене системы сборки. Если вы со своим другом пилите стартап, то пользуйтесь Gradle и отбросьте эти мысли.
Буду рад обсудить перспективы альтернатив Gradle в комментариях!
Ссылка на проект
- Бесплатные файлы
- Начать продавать
- Стать партнером
- Форум
- Блог
- Коллекции
- Хостинг
- Сценарии и код
- PHP-скрипты
- JavaScript
- CSS
- питон
- Ява
- Рубин
- C & C ++
- C #
- VB.СЕТЬ
- Шаблоны приложений
- Android
- Buildbox
- Построить 2
- Кордова
- корона
- флаттер
- ионный
- IOS
- реагировать
- титан
- Единство
- Xamarin
- Темы
- Drupal
- привидение
- HTML
- Joomla
- Magento
- муза
- MyBB
- nopCommerce
- OpenCart
- Osclass
- PrestaShop
- Shopify
- Tumblr
- WooCommerce
- WordPress
- Разное
- Плагины
- CS-Cart
- Drupal
- Joomla
- Magento
- nopCommerce
- OpenCart
- интернет-магазин
- Почему GitHub?
Особенности →
- Обзор кода
- Управление проектами
- Интеграция
- Действия
- Пакеты
- Безопасность
- Управление командой
- Хостинг
- Мобильный
- Отзывы клиентов →
- Безопасность →
- команда
- предприятие
- Проводить исследования
- Исследуйте GitHub →
учиться и внести свой вклад
- Темы
- Коллекции
- Тенденции
- Learning Lab
- Руководства с открытым исходным кодом
Общайтесь с другими
- События
- Общественный форум
Android Open Source Project · GitHub
перейти к содержанию AOSP-зеркало Зарегистрироваться- Почему GitHub?
Особенности →
- Обзор кода
- Управление проектами
- Интеграция
- Действия
- Пакеты
- Безопасность
- Управление командой
- Хостинг
- Мобильный
- Отзывы клиентов →
- Безопасность →
- команда
- предприятие
- Проводить исследования
- Исследуйте GitHub →
учиться и внести свой вклад
- Темы
- Коллекции
- Тенденции
- Learning Lab
- Руководства с открытым исходным кодом
Общайтесь с другими
- События
- Общественный форум
- GitHub Education
- базарная площадь
Лучший способ научиться читать — это верно и для разработчика. Если вы хотите стать лучшим разработчиком, вы должны прочитать больше кода. Это так просто.
Книги, блоги, форумы в определенной степени хороши, но нет ничего, что могло бы заменить некоторые полностью функциональные, исчерпывающие проекты с открытым исходным кодом, где все приложение со всеми его ресурсами находится прямо перед вами.
Все, что вам нужно сделать, это сесть, взять чашку кофе и прочитать какой-нибудь обалденный код . Здесь, в этой статье, мы представляем некоторые из лучших приложений Android с открытым исходным кодом из различных категорий и жанров, чтобы удовлетворить все ваши потребности в обучении и разработке.
Вы можете попробовать эти приложения прямо из Play Store, чтобы получить практический опыт , прежде чем углубляться в код. Уровень сложности, приложенный к каждому приложению, поможет вам судить, стоит ли вам мгновенно погрузиться в него или отложить его на время.
(Github | Play Store | Сложность: Новичок)
Приложения для создания фото и видео галерей являются одними из самых распространенных приложений, которые вы можете найти на любом устройстве Android. Никогда не задумывались, как они сделаны? LeafPic — одно из лучших приложений для галереи с открытым исходным кодом , из которого вы можете попробовать.
Это довольно просто, легко понять и идеально подходит для любого начинающего разработчика. Одна из лучших вещей, которые я нашел в этом приложении, — способ, которым они реализовали динамическую тематику .Это то, что многие разработчики Android пытаются реализовать должным образом.
(Github | Play Store | Сложность: для начинающих)
Простое и удобное в использовании приложение-календарь , созданное исключительно с использованием Kotlin . Если вы хотели изучить Kotlin, то это, вероятно, один из лучших способов начать.
Цель этого приложения довольно проста, что делает его идеальным, чтобы запачкать руки, изучая совершенно новый язык для разработки приложений для Android. Еще одна интересная вещь, которую вы можете извлечь из этого проекта, — это создание пользовательских виджетов для Android.
(Github | Play Store | Сложность: Средний уровень)
Еще одно чрезвычайно распространенное приложение для Android, которое можно найти практически на любом устройстве Android, — это файловый менеджер.
Хотя поначалу создание приложения менеджера файлов может показаться простым, но на самом деле довольно сложно сделать его правильным для всех платформ Android и всех устройств.
Из этого приложения вы можете узнать много хорошего, особенно о том, как правильно обрабатывать файлы на SD-картах.Но я бы не советовал вам следовать стандартам кодирования, используемым в этом проекте, так как это далеко не так.
РЕКОМЕНДУЕМОЕ ЧТЕНИЕ
(Github | Play Store | Сложность: Начинающий)
Простое, удобное и красивое приложение для записи звука для Android . Если вы хотите узнать о записи звука и манипулировании в Android, то этот проект — лучший способ начать ваше путешествие.
Этот проект очень мал (всего лишь одно задание) и очень прост для понимания.Новички также могут узнать об основах Material Design из этого проекта.
(Github | Play Store | Сложность: начинающий)
MLManager — это простой и понятный менеджер приложений для вашего устройства Android. Этот проект идеально подходит для вас, если вы хотите узнать, как получить подробную информацию об установленных приложениях на вашем устройстве, извлечь APK из этих приложений, удалить приложения и многое другое.
Стандарты кодирования, используемые в этом приложении, довольно хороши и должны соблюдаться.Это также может дать вам хорошее представление о разработке чистых и простых приложений, следуя рекомендациям Material Design.
(Github | Play Store | Сложность: начинающий)
Очень простое и аккуратно разработанное приложение, которое можно использовать для сшивания фотографий по вертикали или горизонтали. Звучит просто? Это действительно так.
Идеально подходит для любого начинающего разработчика Android, желающего изучить основы разработки под Android . Стандарты кодирования являются первоклассными, и приложение было разработано с учетом лучших практик.
Вы также научитесь создавать несколько простых, но полезных пользовательских представлений, которые могут помочь вам подготовить фундамент, чтобы впоследствии вы могли в дальнейшем создавать действительно сложные представления.
(Github | Сложность: Средний)
Цель этого приложения довольно проста: перечислить популярные фильмы с их трейлерами и обзорами. Но что делает этот проект действительно интересным, так это то, как все было реализовано здесь.
Приложение демонстрирует некоторые действительно классные средства разработки , такие как MVP, «Чистая архитектура дяди Боба», дарит сладкий вкус RxJava и внедрения зависимостей с помощью Dagger 2.
Приложение довольно простое, но способ реализации был фантастическим и определенно стоит посмотреть.
(Github | | Play Store | Сложность: Средний уровень)
Еще один простой, легкий и минималистичный файловый менеджер, разработанный для телефонов и планшетов.
Из этого проекта можно многое узнать об обработке файлов, управлении корнями, загрузчиках, пользовательских представлениях и т. Д. Он довольно хорошо сделан и не должен занимать у вас много времени, чтобы понять, что происходит внутри него.
РЕКОМЕНДУЕМОЕ ЧТЕНИЕ
(Github | Play Store | Сложность: Начинающий)
Если вы новичок, это очень простой, но интересный проект для начала. Вы получите хороший шанс узнать большинство основных и фундаментальных аспектов разработки под Android.
Дизайн приложения приличный и служит хорошей отправной точкой для начинающих. Но не следуйте приведенным здесь стандартам кодирования или структуре упаковки, так как они не соответствуют действительности и их следует избегать.
(Github | Play Store | Сложность: Продвинутый)
Timber — это красиво оформленный, полнофункциональный музыкальный проигрыватель для Android . Если вы когда-нибудь хотели создать свой собственный музыкальный проигрыватель или какое-либо музыкальное приложение, то вам стоит взглянуть на этот проект.
Проект довольно большой и очень активно развивается. Для новичка может быть немного трудно понять все происходящее, но это должно быть действительно интересно для любого разработчика Android среднего или продвинутого уровня.
(Github | Play Store | Сложность: Средний уровень)
Если вы хотите узнать о мониторинге процессов Android, использовании памяти, использовании процессора и прочем, связанных с ними, то это идеальный проект для начала.
Это довольно маленький и легкий для понимания также , но стандарт кодирования, архитектура следуют и общий дизайн не на должном уровне и не должен соблюдаться.
(Github | Сложность: начинающий)
Если вы ищете проект для изучения или усовершенствования ваших навыков в области дизайна материалов , то это только для вас.Этот проект пытается воспроизвести части приложения Instagram в прекрасном Material Design.
В этом приложении используются тонны элементов Material Design, анимации и переходов, которые вы можете изучить и реализовать в своем собственном проекте.
Это довольно просто, легко понять и идеально подходит для любого разработчика Android, который хочет улучшить свои навыки дизайна.
(Github | Сложность: Легко)
CoCoin — это исчерпывающее решение для личных финансов и учета с чистым и красивым пользовательским интерфейсом.
Если вы хотите научиться правильно управлять множеством пользовательских данных, рисовать красивые графики из этих данных, создавать интересные классные представления, тогда этот репозиторий с открытым исходным кодом именно для вас.
(Github | Play Store | Сложность: Средний уровень)
Если вы хотите создать полнофункциональное Android-приложение для создания заметок, такое как Evernote , то это как раз тот проект, с которого вы можете начать.
Проект довольно большой, с множеством функций, таких как обмен и поиск заметок, прикрепление изображений, видео, аудио, создание эскизов в заметках, добавление напоминаний и многое другое.
Еще одна очень полезная вещь, которую вы можете извлечь из этого проекта, — это бесшовная интеграция вашего приложения с Google Now.
РЕКОМЕНДУЕМОЕ ЧТЕНИЕ
(Github | Play Store | Сложность: Новичок)
Простое, чистое и красивое приложение менеджера буфера обмена для Android . Проект довольно маленький, простой и понятный.
Но структура пакета, архитектура, соглашения об именах и стандарты кодирования, используемые в этом проекте, не соответствуют требованиям.Он был построен очень простым и удобным для начинающих способом.
(Github | Сложность: Продвинутый)
Если вы когда-либо использовали устройство Android, вам наверняка понадобилась очистка некоторых нежелательных данных с вашего устройства. И Clean Master — один из самых популярных вариантов среди всех.
Это приложение, как следует из названия, пытается эмулировать большинство функций Clean Master очень чистым и элегантным способом . Но общий проект немного сложен и может занять некоторое время, чтобы понять все происходящее.
(Github | Сложность: Средний)
Если вы хотите создать приложение, основанное на путешествиях, и вам нужно сильно полагаться на местоположение и карты , то этот проект, вероятно, является лучшим местом для начала.
Дизайн и качество кода приложения не на должном уровне, но в целом приложение действительно хорошее, и есть много вещей, которые нужно выучить новичку и даже разработчику Android среднего уровня.
(Github | Play Store | Сложность: Средний уровень)
Простое, супер-быстрое и легкое приложение запуска для Android .Из этого проекта можно извлечь несколько интересных и полезных функций.
Итак, если вы хотите сделать пусковую установку для Android, это, вероятно, лучший способ начать. Приложение довольно маленькое, и проект довольно прост для начала.
(Github | Play Store | Сложность: Средний уровень)
Простое, но довольно мощное приложение текстового редактора для Android . Вы также можете использовать этот редактор для написания кода, и он поддерживает подсветку синтаксиса для разных языков программирования.
Я даже пытался открыть большие текстовые файлы, где большинство приложений, как правило, сбои или сбой, это приложение обрабатывает их довольно изящно. Из этого проекта у вас будет хороший шанс научиться создавать очень надежное и надежное приложение для редактирования текста (или кода).
(Github | Сложность: новичок)
Быстрое, простое и эффективное приложение для обоев для Android . В этом проекте есть чему поучиться, особенно для начинающих.
Архитектура, используемая в приложении, довольно хорошая, что делает его действительно простым в расширении и обслуживании.Цель этого приложения довольно проста, но подход, принятый для достижения цели, действительно заметен.
(Github | Сложность: Начинающий)
Простое и легкое приложение с шагомером, в котором используется аппаратный датчик для расчета шагов , которые практически не влияют на работу аккумулятора устройства.
Хороший проект, чтобы начать изучение отслеживания шагов, но стандарты и дизайн кодирования недостаточно хороши, чтобы им следовать.