Skip to content

Instantly share code, notes, and snippets.

View Guilherme-HRamos's full-sized avatar
🏠
Working from home

Guilherme Henrique Guilherme-HRamos

🏠
Working from home
View GitHub Profile
@Guilherme-HRamos
Guilherme-HRamos / InterfaceMethods.java
Last active June 30, 2019 20:13
Medium - Android/Java Interfaces like a Boss! - Methods modifiers examples
interface InterfaceMethods {
// Métodos abstratos
// 1.Em classes concretas DEVEM ser sobreescritos (override)
// 2.Em classes abstratas a sobreescrita é opcional
Context getContext();
// Métodos defaults (ou métodos padrões)
// 1.Possuem o modificador "default"
// 2.Possuem corpo
// 3.Não precisam ser sobreescritos
@Guilherme-HRamos
Guilherme-HRamos / InterfaceWithConstants.java
Created June 30, 2019 20:46
Medium - Android/Java Interfaces like a Boss! - Constants
interface InterfaceWithConstants {
// Atributos
// 1.Permitido apenas atributos constantes (static final), ou seja,
// precisam ser declarados com valores definidos que não podem
// ser alterados em tempo de execução
// 2.Os modificadores podem ficar implícitos,
// pois apenas "um" tipo de modificador é permitido
String BASE_URL = "https://medium.com";
int MAX_TRIES = 10;
}
@Guilherme-HRamos
Guilherme-HRamos / InterfaceWithNestedClasses.java
Created June 30, 2019 20:59
Medium - Android/Java Interfaces like a Boss! - Nested classes example
interface InterfaceWithNestedClasses {
// Classes internas
// 1.Podem ter qualquer tipo de classe internamente
// 2.Suas classes internas são estáticas (nested classes)
interface MyInterface {
// some code here
}
enum MyEnum {
@Guilherme-HRamos
Guilherme-HRamos / InterfaceInheritance.java
Created June 30, 2019 21:21
Medium - Android/Java Interfaces like a Boss! - Interface inheritance examples
// Interface usada na herança
interface ParentInterface {
void firstMethod();
void secondMethod();
}
// Interface derivada de ParentInterface
interface ChildInterface extends ParentInterface {
// Herança
// 1.Não é necessário sobrescrever os métodos herdados de
@Guilherme-HRamos
Guilherme-HRamos / OpenLogFileActivity.java
Last active July 1, 2019 01:44
Medium - Android/Java Interfaces like a Boss! - Callbacks pt ll
public class OpenLogFileActivity extends AppCompatActivity {
// some Activity code here
private void onOpenLogButtonClick() {
// Usando uma classe anônima como Callback
new OpenFileHelper("home/log.txt", new OpenFileHelperCallback() {
@Override
public void onFileOpenSuccess(File file) {
// do something with file
@Guilherme-HRamos
Guilherme-HRamos / ButtonConfigHelper.java
Last active July 1, 2019 03:36
Medium - Android/Java Interfaces like a Boss! - Listeners pt l
public class ButtonConfigHelper implements View.OnClickListener {
// Exemplo do Listener como classe anônima
private void setupClick(Button button) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
logMessage("setupClick() called");
}
});
@Guilherme-HRamos
Guilherme-HRamos / MainPresenter.java
Last active July 27, 2019 22:40
Medium - Android/Java Interfaces like a Boss! - Contracts implementations (Presenter)
public class AccountManagerPresenterImpl implements AccountManagerPresenter {
private final ViewContract viewContract;
public MainPresenter(ViewContract viewContract) {
this.viewContract = viewContract;
}
@Override
public void onUpdateAccount(String newName, String newEmail) {
@Guilherme-HRamos
Guilherme-HRamos / MainActivity.java
Last active July 27, 2019 22:41
Medium - Android/Java Interfaces like a Boss! - Contracts implementations (View)
public class MainActivity extends AppCompatActivity implements ViewContract {
private AccountManagerPresenter presenter;
private Button updateAccountButton;
private Button removeAccountButton;
private EditText nameInput;
private EditText emailInput;
@Override
@Guilherme-HRamos
Guilherme-HRamos / Presenter.java
Last active July 27, 2019 22:43
Medium - Android/Java Interfaces like a Boss! - Contracts interfaces
public interface Presenter {
void onUpdateAccount(String newName, String newEmail);
void onRemoveAccount();
}
@Guilherme-HRamos
Guilherme-HRamos / LogCatLogger.java
Last active July 28, 2019 00:31
Medium - Android/Java Interfaces like a Boss! - Markers (Interfaces)
public interface LogCatLogger extends Logger {
}