Introducing Appwrite for Android. The Open-Source Firebase Alternative That Is Easy to Self-Host šŸš€

Eldad A. Fux
Geek Culture
Published in
5 min readJul 7, 2021

Today Iā€™m thrilled to introduce Appwrite to the Android developer community. Appwrite is an entirely open-source and self-hosted Firebase alternative that is extremely easy to deploy. Weā€™ve been working on Appwrite for quite a while now, and weā€™re super excited to announce our support for native Android development with the release of Appwrite 0.9 and our official Android SDK.

What is Appwrite?

Appwrite is a self-hosted backend as a service that is packaged as a set of Docker micro-services. Appwrite provides you with all the core APIs needed to build a modern application and abstracts all the boiler plate code to allow you to focus on creating awesome and innovative solutions.

You can use Appwrite to build applications without writing any backend code at all! But this isnā€™t the only way to use it. Appwrite wasnā€™t designed to replace your backend team, instead to give you a better starting point for your project and a great developer experience.

Although Appwrite is still in beta ( working hard on getting to 1.0 šŸ¤ž), weā€™ve already got a majority of BaaS features, and it just keeps getting better all the time, backed by an awesome community of thousands of developers, over 250 contributors and just recently, over 10,000 GitHub stars (!). āœØ

Authentication and Users

The Appwrite Accounts and Users services exposes your client to an API that allows you to interact with your appā€™s logged-in accounts and easily manage your appā€™s users from the Appwrite Android SDK or the Appwrite console.

Appwrite Account service lets you manage your userā€™s active sessions.

The Accounts service allows your users to update their account-related information and save their private preferences like their UI language, timezone, or favorite theme. In addition, you can allow your users to securely store all their preferences.

You can also use the API to get a list of all active user sessions, including information about the session location, device, operating system, and user-agent. You can even let your users review their latest logins, password recoveries, and other security-sensitive events.

Database

The Appwrite Database API is a simple REST API that allows you to add persistency to your application. For example, you can create collections of documents and handle which user has read or write access both at the collection and document levels.

Currently, Appwrite uses MariaDB as the database under the hood. In the upcoming release however, weā€™re adding support for MongoDB and other databases giving you complete freedom and flexibility to use the technology that your team feels most comfortable with.

Storage

Everything you need for managing your app and usersā€™ files

The Appwrite Storage service is the easiest way to let you or your app users upload and manage their files securely. The API takes advantage of the same simple read and write permissions mechanism that the database uses. This allows you to easily grant read and write access to all users, specific users, and even teams of users.

Appwrite also takes care of your file compression, encryption and even provides you with built-in anti-virus scanning. Security and privacy are at the heart of everything we do at Appwrite.

Teams

The Appwrite Teams service allows you and your users to create teams and share permission to different API resources, such as files, functions, or documents. This is a great and simple way to implement complex access control requirements for your product.

Each team member can also be granted different roles to give you even greater flexibility. You can also use your Appwrite console and backend SDKs to manage your teams easily.

Functions

The Appwrite Functions API allows you to easily extend your Appwrite API behavior and capabilities in any coding language that youā€™d like to use, including Java and Kotlin as part of our new support for Android developers.

You can trigger your custom functions using the Appwrite API, console, or using a CRON schedule. You can even trigger your functions on any system event like user creation or when a new file is uploaded.

Get Started

Appwrite is packaged as a set of Docker microservices that can run anywhere Docker can run. This allows you to deploy Appwrite fairly easily using a single CLI command.

Unix

docker run -it ā€” rm \
ā€” volume /var/run/docker.sock:/var/run/docker.sock \
ā€” volume ā€œ$(pwd)ā€/appwrite:/usr/src/code/appwrite:rw \
ā€” entrypoint=ā€installā€ \
appwrite/appwrite:0.9.0

CMD

docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^
appwrite/appwrite:0.9.0

PowerShell

docker run -it --rm ,
--volume /var/run/docker.sock:/var/run/docker.sock ,
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ,
--entrypoint="install" ,
appwrite/appwrite:0.9.0

Once your Appwrite API and console are up, getting started with the new Android SDK is fairly easy. You can check out our Android Quick Start Guide for making your first Appwrite API call from your Android application.

Whatā€™s Next?

If youā€™re new to Appwrite, you should join our Discord community, where we chat about Appwrite non-stop. You should also check out the Appwrite Awesome repository, where youā€™ll find lots of resources about Appwrite, including text and video tutorials and many ( many ) demo applications.

We also really like Github stars. So if you like what we do, weā€™d love you to drop a ā­ļø on our Github repo.

--

--

Eldad A. Fux
Geek Culture

Entrepreneur, Software Architect, open source enthusiastic and the creator of appwrite.io. You can follow me on twitter: https://twitter.com/eldadfux