Skip to content

Instantly share code, notes, and snippets.

Subhrajyoti Sen SubhrajyotiSen

Block or report user

Report or block SubhrajyotiSen

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View GraphQL-Android-Proposal.md

Exploring GraphQL on Android

Description

Traditionally most of us have been using REST for our APIs. Even though it has worked well till now, there are multiple pain points around it like too many endpoints, payload bloat, documentation effort etc. Then came GraphQL to save us developers. GraphQL is a query language for APIs.

In this talk, we explore the general pain points regarding REST and understand how GraphQL addresses them. We also go through the process of consuming GraphQL APIs on Android and common things to keep in mind. With Apollo for Android reaching v1.0 recently, now is the perfect time to explore GraphQL on Android.

Elevator pitch

As a mobile developer working with REST APIs, you must have at one point wished that you didn't have to hit different endpoints just for slightly different data. GraphQL was built to address this and many other pain points. Come learn about this new query language and how you can try it on Android.

View whyred_los.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="SubhrajyotiSen/android_device_xiaomi_whyred" path="device/xiaomi/whyred" remote="github" revision="lineage-16.0" />
<project
name= "SubhrajyotiSen/android_kernel_xiaomi_whyred"
path= "kernel/xiaomi/whyred"
remote="github" revision="lineage-16.0" />
<project
name= "LineageOS/android_packages_resources_devicesettings"
path= "packages/resources/devicesettings"
View sip_calculation
var amount = 100.0
val installment = 100.0
entryList.add(Entry(0f, 100f)) // initial investment
for (i in 1 until dataPoints.size) {
val diff = (dataPoints[i].price - dataPoints[i - 1].price) / dataPoints[i - 1].price
amount += (amount * diff)
if (i != dataPoints.size - 1)
amount += installment
entryList.add(Entry(i.toFloat(), amount.toFloat()))
View compcoding
#include<bits/stdc++.h>
using namespace std;
#define FOR(i,n,a) for(int i=a;i<=n;i++)
#define FORN(i,n,a) for(int i=a;i<n;i++)
typedef long long ll;
int main() {
ios_base::sync_with_stdio(false);
View RecyclerViewAdapter.java
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.RecyclerViewHolder> {
private List<BorrowModel> borrowModelList;
private View.OnLongClickListener longClickListener;
public RecyclerViewAdapter(List<BorrowModel> borrowModelList, View.OnLongClickListener longClickListener) {
this.borrowModelList = borrowModelList;
this.longClickListener = longClickListener;
}
View MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnLongClickListener {
private BorrowedListViewModel viewModel;
private RecyclerViewAdapter recyclerViewAdapter;
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View BorrowedListViewModel.java
public class BorrowedListViewModel extends AndroidViewModel {
private final LiveData<List<BorrowModel>> itemAndPersonList;
private AppDatabase appDatabase;
public BorrowedListViewModel(Application application) {
super(application);
View AppDatabase.java
@Database(entities = {BorrowModel.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE;
public static AppDatabase getDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "borrow_db")
.build();
View BorrowModelDao.java
@Dao
@TypeConverters(DateConverter.class)
public interface BorrowModelDao {
@Query("select * from BorrowModel")
LiveData<List<BorrowModel>> getAllBorrowedItems();
@Query("select * from BorrowModel where id = :id")
BorrowModel getItembyId(String id);
View DateConverter.java
import java.util.Date;
class DateConverter {
@TypeConverter
public static Date toDate(Long timestamp) {
return timestamp == null ? null : new Date(timestamp);
}
@TypeConverter
public static Long toTimestamp(Date date) {
You can’t perform that action at this time.