Giter VIP home page Giter VIP logo

ligi / android-components Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mozilla-mobile/android-components

1.0 2.0 0.0 54.3 MB

A collection of Android libraries to build browsers or browser-like applications.

Home Page: https://mozac.org

License: Mozilla Public License 2.0

Kotlin 84.86% HTML 0.03% CSS 0.30% Java 3.36% Python 0.50% Dockerfile 0.07% Shell 0.14% Prolog 0.01% JavaScript 10.74%

android-components's Introduction

Android components

Task Status codecov Bors enabled Gitter

A collection of Android libraries to build browsers or browser-like applications.

โ„น๏ธ For more information see the website.

A full featured reference browser implementation based on the components can be found in the reference-browser repository.

Getting Involved

We encourage you to participate in this open source project. We love pull requests, bug reports, ideas, (security) code reviews or any kind of positive contribution.

Before you attempt to make a contribution please read the Community Participation Guidelines.

Maven repository

All components are getting published on maven.mozilla.org. To use them, you need to add the following to your projects top-level build file, in the allprojects block (see e.g. the reference-browser):

repositories {
    maven {
       url "https://maven.mozilla.org/maven2"
    }
}

Snapshot builds

Snapshots are build daily from the master branch and published on snapshots.maven.mozilla.org.

API Reference

The API reference docs are available at mozac.org/api/.

Components

  • ๐Ÿ”ด In Development - Not ready to be used in shipping products.
  • โšช Preview - This component is almost/partially ready and can be tested in products.
  • ๐Ÿ”ต Production ready - Used by shipping products.

Browser

High-level components for building browser(-like) apps.

  • โšช Awesomebar - A customizable Awesome Bar implementation for browsers.

  • ๐Ÿ”ต Domains Localized and customizable domain lists for auto-completion in browsers.

  • โšช Engine-Gecko - Engine implementation based on GeckoView (Release channel).

  • โšช Engine-Gecko-Beta - Engine implementation based on GeckoView (Beta channel).

  • โšช Engine-Gecko-Nightly - Engine implementation based on GeckoView (Nightly channel).

  • โšช Engine-System - Engine implementation based on the system's WebView.

  • ๐Ÿ”ต Errorpages - Responsive browser error pages for Android apps.

  • ๐Ÿ”ด Icons - A component for loading and storing website icons (like Favicons).

  • โšช Menu - A generic menu with customizable items primarily for browser toolbars.

  • ๐Ÿ”ต Search - Search plugins and companion code to load, parse and use them.

  • ๐Ÿ”ต Session - A generic representation of a browser session.

  • ๐Ÿ”ด Storage-Memory - An in-memory implementation of browser storage.

  • โšช Storage-Sync - A syncable implementation of browser storage backed by application-services' Places lib.

  • ๐Ÿ”ด Tabstray - A customizable tabs tray for browsers.

  • โšช Toolbar - A customizable toolbar for browsers.

Concept

API contracts and abstraction layers for browser components.

  • โšช Awesomebar - An abstract definition of an awesome bar component.

  • โšช Engine - Abstraction layer that allows hiding the actual browser engine implementation.

  • โšช Fetch - An abstract definition of an HTTP client for fetching resources.

  • ๐Ÿ”ด Push - An abstract definition of a push service component.

  • โšช Storage - Abstract definition of a browser storage component.

  • ๐Ÿ”ด Tabstray - Abstract definition of a tabs tray component.

  • โšช Toolbar - Abstract definition of a browser toolbar component.

Feature

Combined components to implement feature-specific use cases.

  • ๐Ÿ”ด Accounts - A component that connects an FxaAccountManager from service-firefox-accounts with feature-tabs in order to facilitate authentication flows.

  • โšช Awesomebar - A component that connects a concept-awesomebar implementation to a concept-toolbar implementation and provides implementations of various suggestion providers.

  • โšช Context Menu - A component for displaying context menus when long-pressing web content.

  • ๐Ÿ”ด Custom Tabs - A component for providing Custom Tabs functionality in browsers.

  • โšช Downloads - A component to perform downloads using the Android downloads manager.

  • ๐Ÿ”ด Intent - A component that provides intent processing functionality by combining various other feature modules.

  • ๐Ÿ”ด Progressive Web Apps (PWA) - A component that provides functionality for supporting Progressive Web Apps (PWA).

  • ๐Ÿ”ด Reader View - A component that provides Reader View functionality.

  • โšช QR - A component that provides functionality for scanning QR codes.

  • ๐Ÿ”ด Search - A component that connects an (concept) engine implementation with the browser search module.

  • ๐Ÿ”ด SendTab - A component for sending tabs to other devices with a registered FxA Account.

  • โšช Session - A component that connects an (concept) engine implementation with the browser session and storage modules.

  • ๐Ÿ”ด Sync -A component that provides synchronization orchestration for groups of (concept) SyncableStore objects.

  • ๐Ÿ”ด Tabs - A component that connects a tabs tray implementation with the session and toolbar modules.

  • ๐Ÿ”ด Tab Collections - Feature implementation for saving, restoring and organizing collections of tabs.

  • ๐Ÿ”ด Toolbar - A component that connects a (concept) toolbar implementation with the browser session module.

  • โšช Prompts - A component that will handle all the common prompt dialogs from web content.

  • โšช Push - A component that provides Autopush messages with help from a supported push service.

  • โšช Find In Page - A component that provides an UI widget for find in page functionality.

  • ๐Ÿ”ด Site Permissions - A feature for showing site permission request prompts.

  • ๐Ÿ”ด Web Notifications - A component for displaying web notifications.

  • ๐Ÿ”ต WebCompat - A feature to enable website-hotfixing via the Web Compatibility System-Addon.

UI

Generic low-level UI components for building apps.

  • ๐Ÿ”ต Autocomplete - A set of components to provide autocomplete functionality.

  • ๐Ÿ”ต Colors - The standard set of Photon colors.

  • ๐Ÿ”ต Fonts - The standard set of fonts used by Mozilla Android products.

  • ๐Ÿ”ต Icons - A collection of often used browser icons.

  • โšช Tabcounter - A button that shows the current tab count and can animate state changes.

Service

Components and libraries to interact with backend services.

  • ๐Ÿ”ต Firefox Accounts (FxA) - A library for integrating with Firefox Accounts.

  • ๐Ÿ”ต Firefox Sync - Logins - A library for integrating with Firefox Sync - Logins.

  • ๐Ÿ”ต Fretboard - An Android framework for segmenting users in order to run A/B tests and roll out features gradually.

  • ๐Ÿ”ด Glean - A client-side telemetry SDK for collecting metrics and sending them to Mozilla's telemetry service (eventually replacing service-telemetry).

  • ๐Ÿ”ด Experiments - An Android SDK for running experiments on user segments in multiple branches.

  • โšช Location - A library for accessing Mozilla's and other location services.

  • ๐Ÿ”ด Pocket - A library for communicating with the Pocket API.

  • ๐Ÿ”ต Telemetry - A generic library for sending telemetry pings from Android applications to Mozilla's telemetry service.

Support

Supporting components with generic helper code.

  • ๐Ÿ”ต Android Test - A collection of helpers for testing components in instrumented (on device) tests (src/androidTest).

  • ๐Ÿ”ต Base - Base component containing building blocks for components.

  • ๐Ÿ”ต Ktx - A set of Kotlin extensions on top of the Android framework and Kotlin standard library.

  • โšช Migration - Helper code to migrate from a Fennec-based (Firefox for Android) app to an Android Components based app.

  • ๐Ÿ”ต Test - A collection of helpers for testing components in local unit tests (src/test).

  • ๐Ÿ”ต Test Appservices - A component for synchronizing Application Services' unit testing dependencies used in Android Components.

  • ๐Ÿ”ต Utils - Generic utility classes to be shared between projects.

  • ๐Ÿ”ต Webextensions - A component containing building blocks for features implemented as web extensions.

Standalone libraries

Tooling

  • ๐Ÿ”ต Fetch-Tests - A generic test suite for components that implement concept-fetch.

  • ๐Ÿ”ต Lint - Custom Lint rules for the components repository.

Sample apps

Sample apps using various components.

  • Browser - A simple browser composed from browser components. This sample application is only a very basic browser. For a full-featured reference browser implementation see the reference-browser repository.

  • Crash - An app showing the integration of the lib-crash component.

  • Firefox Accounts (FxA) - A simple app demoing Firefox Accounts integration.

  • Firefox Sync - A simple app demoing general Firefox Sync integration, with bookmarks and history.

  • Firefox Sync - Logins - A simple app demoing Firefox Sync (Logins) integration.

  • Toolbar - An app demoing multiple customized toolbars using the browser-toolbar component.

  • DataProtect - An app demoing how to use the Dataprotect component to load and store encrypted data in SharedPreferences.

  • Glean - An app demoing how to use the Glean library to collect and send telemetry data.

Building

Command line

$ git clone https://github.com/mozilla-mobile/android-components.git
$ cd android-components
$ ./gradlew assemble

Android Studio

If the environment variable JAVA_HOME is not defined, you will need to set it. If you would like to use the JDK installed by Android Studio, here's how to find it:

  1. Open Android Studio.
  2. Select "Configure".
  3. Select "Default Project Structure". You should now see the Android JDK location.
  4. Set the environment variable JAVA_HOME to the location. (How you set an environment variable depends on your OS.)
  5. Restart Android Studio.

Once the environment variable is set, you can import the project into Android Studio with the default wizard options.

License

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/

android-components's People

Contributors

amejia481 avatar badboy avatar boek avatar carolkng avatar cassidyjames avatar colintheshots avatar csadilek avatar dector avatar dexterp37 avatar eeejay avatar ekager avatar eoger avatar fercarcedo avatar georgf avatar jhugman avatar johanlorenzo avatar jonalmeida avatar mcarare avatar mcomella avatar mdboom avatar mickeymoz avatar mozlando avatar notwoods avatar pike avatar pocmo avatar psymoon avatar rocketsroger avatar sblatz avatar travis79 avatar vladikoff avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.