Skip to content

subreddit-emportugues/aplicativo

Repository files navigation

Aplicativo

Descrição

Aplicativo para Android que exibe informações sobre subreddits lusófonos e afins publicados no subreddit r/EmPortugues.

O aplicativo usa Retrofit para descarregar um arquivo em formato JSON armazenado num servidor remoto a fim de desserializá-lo num POJO convertido por meio de GSON e apresentar os resultados numa ListView com aparência de tabela.

A atividade principal do aplicativo permite filtrar os dados com SearchView, reordenar as colunas da tabela com Comparator e conferir e visitar itens da lista com Theme.AppCompat.Dialog e Intent além de contar com um FloatingActionButton para facilitar a navegação e um Menu com links para o subreddit, o site e este repositório.

As informações apresentadas no aplicativo são: "icon", "name", "description", "recent_submissions" e "recent_comments", "members", "age", "moderators", "nsfw" e o link de cada subreddit listado.

Sumário

Instalação

  1. Clone o repositório;
  2. execute o Android Studio;
  3. abra um novo projeto;
  4. e selecione "aplicativo".

Instruções

Para alterar o endereço do arquivo JSON, em RetroClient.java e em ApiService.java, edite:

private static final String ROOT_URL = "https://emportugues.org";
@GET("/data/subreddits.json")

Para alterar as chaves do objeto JSON, em Subreddit.java, edite:

@SerializedName("id")
@Expose
private Integer id;
@SerializedName("icon")
@Expose
private String icon;
@SerializedName("name")
@Expose
private String name;
@SerializedName("description")
@Expose
private String description;
@SerializedName("recent_submissions")
@Expose
private int submissions;
@SerializedName("recent_comments")
@Expose
private int comments;
@SerializedName("total_activity")
@Expose
private double total_activity;
@SerializedName("members")
@Expose
private Number members;
@SerializedName("age")
@Expose
private Long age;
@SerializedName("moderators")
@Expose
private ArrayList<String> moderators;
@SerializedName("nsfw")
@Expose
private Boolean nsfw;

Para alterar o endereço da WebView, em strings.xml, edite:

<string name="url_website">https://emportugues.org</string>

Dependências

SDK

minSdkVersion 19
targetSdkVersion 29

Gradle

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
classpath 'com.android.tools.build:gradle:3.5.0'

Permissions

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Java 8

sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8

Android X

android.useAndroidX=true
android.enableJetifier=true`

Jetpack

implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.exifinterface:exifinterface:1.0.0'
implementation 'com.google.android.material:material:1.1.0-alpha09'
annotationProcessor 'androidx.annotation:annotation:1.1.0'

Retrofit

implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

GSON

implementation 'com.google.code.gson:gson:2.8.5'

SDP/SSP

implementation 'com.intuit.sdp:sdp-android:1.0.6'
implementation 'com.intuit.ssp:ssp-android:1.0.6'

Glide

implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

ExpandableTextView

implementation 'com.ms-square:expandableTextView:0.1.4'

Butter Knife

implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

Colaboração

Você pode colaborar com o desenvolvimento deste projeto!

Confira os kanbans deste projeto, entre em contato com a equipe de moderação e participe da equipe de desenvolvimento para saber a respeito do progresso deste repositório caso queira colaborar antes de reportar um novo problema ou solicitar o recebimento de uma modificação.

Download

Referências