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.
- Clone o repositório;
- execute o Android Studio;
- abra um novo projeto;
- e selecione "aplicativo".
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>
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'
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.
- Aplicativo: https://play.google.com/store/apps/details?id=org.emportugues.aplicativo
- Comunidade: https://www.reddit.com/r/EmPortugues
- Organização: https://github.com/subreddit-emportugues
- Repositório: https://github.com/subreddit-emportugues/App
- Projeto: https://github.com/orgs/subreddit-emportugues/projects/5
- Equipe: https://github.com/orgs/subreddit-emportugues/teams/desenvolvedores
- Licença: https://github.com/subreddit-emportugues/aplicativo/blob/master/LICENSE