DEV Community

Cover image for Appwrite for Android
Yash Patel
Yash Patel

Posted on • Updated on

Appwrite for Android

Introduction

The following article will cover how we can use Appwrite's Android SDK to build mobile applications. Appwrite is an end-to-end backend server that is aiming to abstract the complexity of common, complex, and repetitive tasks required for building a modern app.

Installation

Appwrite is a self-hosted backend server packaged as a set of Docker containers. You can install and run Appwrite on any operating system that can run a Docker CLI. You can use Appwrite on your local desktop or cloud provider of your choice.

System Requirement:

Appwrite was designed to run well on both small and large deployment. The minimum requirements to run Appwrite is as little as 1 CPU core and 2GB of RAM, and an operating system that supports Docker.

Install with Docker:

The easiest way to start running your Appwrite server is by running our Docker installer tool from your terminal. Before running the installation command, make sure you have Docker CLI installed on your host machine.

Unix:

Image description

Windows:

Hyper-V and Containers Windows features must be enabled to run Appwrite on Windows with Docker. If you don't have these features available, you can install Docker Toolbox that uses Virtualbox to run Appwrite on a Virtual Machine.

Image description

Image description

Manual (using docker-compose.yml):

For advanced Docker users, the manual installation might seem more familiar. To setup Appwrite manually, download the Appwrite base docker-compose.yml and .env files. After the download completes, update the different environment variables as you wish in the .env file and start the Appwrite stack using the following Docker command:

Image description

Once the Docker installation completes, go to your machine hostname or IP address on your browser to access the Appwrite console. Please notice that on non-linux native hosts the server might take a few minutes to start after installation completes.

Overview

Appwrite is a development platform providing you an easy yet powerful API and management console to get your next project up and running quickly.

This tutorial will help you start using Appwrite products and build your next project. Before starting, make sure you have followed the Appwrite installation guide, and you have an Appwrite server instance up and running on your host machine or server.

Create Your First Appwrite Project

Go to your new Appwrite console, and once inside, click the icon in the top navigation header or on the 'Create Project' button on your console homepage. Choose a name for your project and click create to get started.

Add your Android Platform

To init your SDK and start interacting with Appwrite services, you need to add a new Android platform to your project. To add a new platform, go to your Appwrite console, choose the project you created in the step before, and click the 'Add Platform' button.

From the options, choose to add a new Android platform and add add your app name and package name, Your package name is generally the applicationId in your app-level build.gradle file. By registering your new app platform, you are allowing your app to communicate with the Appwrite API.

Get Appwrite Android SDK

Image description

OAuth Callback

In order to capture the Appwrite OAuth callback url, the following activity needs to be added inside the tag, along side the existing tags in your AndroidManifest.xml. Be sure to relpace the [PROJECT_ID] string with your actual Appwrite project ID. You can find your Appwrite project ID in you project settings screen in your Appwrite console.

Image description

Appwrite vs Firebase | 3 Considerations why Appwrite is better for Android

Well I do have three major points here, number one thing is the flexibility that it allows you. The second point is the security it provides you the kind of privacy policies it follows
and the third one is that how it manages to make a balance between the website developers and the mobile developers requirement so it is not primarily for any one of these it is going with a
generic approach to serve all of them whereas you can find on some other platforms some other platforms that they are more focused on the mobile app development side so yes lets talk about it
you all might have used firebase as a beginner developer or maybe i experienced as well because this is something which which
get introduced to you when you are in the very beginning of your development career i am talking specifically about the app developers since uh this is something which is more user-friendly or developer friendly for us when we are starting off our technical journey right when i started my journey i was not
really aware about firebase at that point of time for xyz reasons but later on i got to know about firebase and somebody told me that you dont need to know back end when you try to use
firebase and this was like something which was very magical to me because earlier i used to think that i will have to write things in php and i will have to uh you know query the database using php
and talk you know make the api for everything that i need to do in my application so it was kind of hectic as a beginner developer to uh consume all all those things because you were already
consuming a lot at the front-end part so it was kind of relaxation at that point but yes uh once you are experienced
and you are already uh into the game of development you get to know more about what firebase does and how comfortable
and good it is so i am not degrading when i say that it is not that good but i am just saying that since we already know that it gives us a live environment to host our server like
we dont have to do any kind of arrangements for that you have some
simple instruction that you have to follow if you are supposed integrating firebase in your ios application and after that you are just good to go with their respective api for storing data
and fetching the data back and everything everything like that right but the one thing that you might have noticed uh in the in this complete process is that you dont have much flexibility into all those things maybe while storing the data maybe hosting the
server and any of these things you dont get too much flexibilities in this process which is kind of good when it comes to the beginner developers but it is not that good when it comes to
you already have you know maybe two or three years of experience and now you are making some product in which you are
maybe interested in uh at that point of time you need some kind of
customizations at that back and end and some more modifications that you want for your specific requirements of the
application so firebase somewhat lacks in that in that scenario and thats where appwrite comes in the picture so what appwrite does is people say that app right is more of like firebase and i do believe that but the only difference that i can see here
is that app right gives you a lot more flexibility when it comes to storing your data into your database uh while
making queries while uh defining the you know kind of you have certain key pairs right that you have to save in your database the
records that you save right so in app right i really like this thing that you all you have of this field called uh
required field right and you can just mention if this field is actually required or not which makes it strictly
required and others are like optional fields it could be there or it could not be there but this kind of flexibility is
not available at the firebase and so if somebody is listening uh from the firebase company and some developers maybe or somebody else is listening from their respective end then i would say
guys that please include this thing this is really interesting and this is really flexible for us to manage at our end the
other thing that you can see in app right versus firebase is in firebase you have a live server about which you dont
need to worry if you are using the free free version right
but when it comes to app right you have a different kind of process to run through that one point here that
in appwrite there is flutter sdk they do have in the website
and they do have sdks and or android for the other things uh which which might be included okay so yeah i just believe that they might be working on the ios and as well and they will be soon coming up with this this announcement that they are good
with the ios sdk and they have put it in the beta so
lets hope for that yes so lets come back to the point that
i was saying uh which was you would find in appwrite you will have to have docker and you can just make a container in docker to kind of get the environment for upright and you get the flexibility
to run the server at your local end right so once you run the server on your local and then you get the flexibility to choose
whichever service you want for you know pushing that certain server or your back end to a live environment. other thing that i really liked about appwrite is they are open source right they are welcoming you to contribute to their library and that is what makes them different or you can say more stronger than others
because they are highly passionate about the contribution that they have been making and they are also welcoming you to be a part of it like so they also have this discord server where you can just join that server and you can talk about your doubts you can talk about uh a certain category doubt maybe you have doubts in
uh implementing the sdk on flutter so you can go to the flutter channel you can talk about that you have some doubts regarding maybe website uh like integrating the app right on your
website so you can just go to that particular channel you will get all the responses i have seen i have observed that channel so from that experience i can say that you will get your responses
and these people are really amazing at you know interacting with this community which is kind of involved in this right software so yeah thats all about it this blog was to make you guys aware about the appwrite and how it is different from firebase because the main motto that i can see of this software is this is a kind of alternate to firebase so i strongly believe that it is because it has some strong points.

Discussion (0)