-
Notifications
You must be signed in to change notification settings - Fork 230
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #271 from letsintegreat/android-java
Add tutorial for android java
- Loading branch information
Showing
18 changed files
with
1,138 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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**. | ||
|
||
 | ||
|
||
Name your project **Recipewrite**, select Java language, and minimum SDK would be **23**. | ||
|
||
 | ||
|
||
# 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' | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 %} | ||
 | ||
{% /only_dark %} | ||
{% only_light %} | ||
 | ||
{% /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 %} | ||
 | ||
{% /only_dark %} | ||
{% only_light %} | ||
 | ||
{% /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); | ||
} | ||
``` |
Oops, something went wrong.