Skip to content

Commit

Permalink
Merge pull request #271 from letsintegreat/android-java
Browse files Browse the repository at this point in the history
Add tutorial for android java
  • Loading branch information
Vincent (Wen Yu) Ge authored Nov 17, 2023
2 parents c90bdaf + e1489d9 commit 2284e9e
Show file tree
Hide file tree
Showing 18 changed files with 1,138 additions and 8 deletions.
25 changes: 17 additions & 8 deletions src/routes/docs/tutorials/android/step-1/+page.markdoc
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
---
layout: tutorial
title: Coming soon
title: Recipewrite - a Recipe sharing app
description: Learn to build an Android app with no backend code using an Appwrite backend.
framework: Android
step: 1
draft: true
difficulty: beginner
---

Improve the docs, add this guide.
**Recipewrite**: an android app to share and find all the delicious recipes that left you licking your fingers.
In this tutorial, you will build Recipewrite with Appwrite, Android and Java.

We still don't have this guide in place, but we do have some great news.
The Appwrite docs, just like Appwrite, is completely open sourced.
This means, anyone can help improve them and add new guides and tutorials.
# Concepts {% #concepts %}
This tutorial will introduce the following concepts:

If you see this page, **we're actively looking for contributions to this page**.
Follow our contribution guidelines, open a PR to [our Website repo](https://github.com/appwrite/website), and collaborate with our core team to improve this page.
1. Setting up your first project
2. Authentication
3. Databases and collections
4. Database Queries
5. Pagination

# Prerequisites {% #prerequisites %}
1. Basic knowledge of Java.
2. Have [Java](https://www.java.com/en/) and [Android Studio](https://developer.android.com/studio) installed on your computer.

If you are stuck at any point, you can refer to the final code repository of this tutorial [here](https://github.com/letsintegreat/Recipewrite).
33 changes: 33 additions & 0 deletions src/routes/docs/tutorials/android/step-2/+page.markdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
layout: tutorial
title: Initialize project
description: Learn to build an Android app with no backend code using an Appwrite backend.
step: 2
difficulty: beginner
---

# Initialize Android Studio project {% #initialize-android-studio-project %}

Open Android Studio and click **New Project** to create a new project. Select **Empty Views Activity**, and click **Next**.

![Empty Activity](/images/docs/tutorials/recipewrite-empty-activity.png)

Name your project **Recipewrite**, select Java language, and minimum SDK would be **23**.

![New Project](/images/docs/tutorials/recipewrite-new-project.png)

# Add dependencies {% #add-dependencies %}

Open `app/build.gradle` file, update `compileSdk` and `targetSdk` to **34**, then find `dependencies` block, and add the Appwrite dependency along with existing ones.

```
dependencies {
implementation 'io.appwrite:sdk-for-android:4.0.0' // Appwrite dependency
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.10.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
```
68 changes: 68 additions & 0 deletions src/routes/docs/tutorials/android/step-3/+page.markdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
layout: tutorial
title: Setup Appwrite
description: Learn to build an Android app with no backend code using an Appwrite backend.
step: 3
difficulty: beginner
---

# Create project {% #create-project %}

Head to the [Appwrite Console](https://cloud.appwrite.io/console).

{% only_dark %}
![Create project screen](/images/docs/quick-starts/dark/create-project.png)
{% /only_dark %}
{% only_light %}
![Create project screen](/images/docs/quick-starts/create-project.png)
{% /only_light %}

If this is your first time using Appwrite, create an account and create your first project.

Then, under **Add a platform**, add a **Android app**. **Package Name** can be found in app level gradle file.

{% only_dark %}
![Add a platform](/images/docs/quick-starts/dark/add-platform.png)
{% /only_dark %}
{% only_light %}
![Add a platform](/images/docs/quick-starts/add-platform.png)
{% /only_light %}

You can skip the optional steps.

# Connect your app with Appwrite {% #connect-your-app-with-appwrite %}

Create **Appwrite.java** in the same directory that contains **MainActivity.java**, this will handle our app's interaction with Appwrite server. Replace `[project-id]` with your new project's id, which can be found beside your project's name in overview tab.

```java
public class Appwrite {
private static Client client;
private static Account account;
private static Databases databases;

private static final String projectID = "[project-id]";
private static final String endpoint = "https://cloud.appwrite.io/v1"; // Add local address if you are running Appwrite locally

public static void init(Context context) {
client = new Client(context);
client.setEndpoint(endpoint);
client.setProject(projectID);
client.setSelfSigned(true);

account = new Account(client);
databases = new Databases(client);
}
}
```

Finally, call this `init` method in `onCreate` method of **MainActivity.java**.

```java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Appwrite.init(this);
}
```
Loading

0 comments on commit 2284e9e

Please sign in to comment.