میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

Github در اندروید

با سلام خدمت همه دوستان عزیز و گرامی در این آموزش قصد داریم نحوه استفاده از Retrofit برای دسترسی به توابع (Github (API در اندروید را خدمت شما عزیزان آموزش دهیم

به منظور تست Retrofit یک اپلیکیشن به نام Retrofit Github ایجاد نمایید. اسم com.vogella.android.retrofitgithub  را به عنوان top level package مورد استفاده قرار دهید.
برای استفاده از Retrofit در اپلیکیشن مورد نظر، کتابخانه ( 
dependency ) زیر را به فایل build.gradle خود اضافه نمایید.

 

compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

مجوز لازم برای دسترسی به اینترنت را در فایل تنظیمات اپلیکیشن ( manifest ) تنظیم نمایید.

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vogella.android.retrofitgithub" >
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Interface و کلاس زیر را برای Retrofit API ایجاد نمایید.

 

package com.vogella.android.retrofitgithub;
// This is used to map the JSON keys to the object by GSON
public class GithubRepo {
String name;
String url;
@Override
public String toString() {
return(name + " " + url);
}
}
package com.vogella.android.retrofitgithub;
// This is used to map the JSON keys to the object by GSON
public class GithubUser {
String login;
String name;
String email;
@Override
public String toString() {
return(login);
}
}
package com.vogella.android.retrofitgithub;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface GithubAPI {
String ENDPOINT = "https://api.github.com";
@GET("/users/{user}")
Call<GithubUser> getUser(@Path("user") String user);
@GET("users/{user}/repos")
Call<List<GithubRepo>> getRepos(@Path("user") String user);
}
package com.vogella.android.retrofitgithub;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class MainActivity extends Activity implements Callback<GithubUser> {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(GithubAPI.ENDPOINT)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
GithubAPI githubUserAPI = retrofit.create(GithubAPI.class);
switch (view.getId()) {
case R.id.loadUserData:
// prepare call in Retrofit 2.0
Call<GithubUser> callUser = githubUserAPI.getUser("vogella");
//asynchronous call
callUser.enqueue(this);
break;
case R.id.loadRepositories:
Call<List<GithubRepo>> callRepos = githubUserAPI.getRepos("vogella");
//asynchronous call
callRepos.enqueue(repos);
break;
}
}
Callback repos = new Callback<List<GithubRepo>>(){
@Override
public void onResponse(Call<List<GithubRepo>> call, Response<List<GithubRepo>> response) {
if (response.isSuccessful()) {
List<GithubRepo> repos = response.body();
StringBuilder builder = new StringBuilder();
for (GithubRepo repo: repos) {
builder.append(repo.name + " " + repo.toString());
}
Toast.makeText(MainActivity.this, builder.toString(), Toast.LENGTH_SHORT).show();
} else
{
Toast.makeText(MainActivity.this, "Error code " + response.code(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<List<GithubRepo>> call, Throwable t) {
Toast.makeText(MainActivity.this, "Did not work " + t.getMessage(), Toast.LENGTH_SHORT).show();
}
};
@Override
public void onResponse(Call<GithubUser> call, Response<GithubUser> response) {
int code = response.code();
if (code == 200) {
GithubUser user = response.body();
Toast.makeText(this, "Got the user: " + user.email, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "Did not work: " + String.valueOf(code), Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<GithubUser> call, Throwable t) {
Toast.makeText(this, "Nope", Toast.LENGTH_LONG).show();
}
}

url مقابل https://api.github.com/users/vogella را در نوار آدرس مرورگر وارد نمایید. پس از پیمایش به آدرس مذکور، یک کلاس data model و interface با داده های مورد نظر ایجاد کنید.
حال این داده ها را با Retrofit خوانده و در یک لیست به نمایش بگذارد.

 


امیدواریم آموزش Github در اندروید نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟