SlideShare a Scribd company logo
2
Most read
7
Most read
8
Most read
Rapid Android Development
for Hackathon
Ade Rifaldi
Android Developer | Radya Labs
Table of Content
• About Me
• Tips & Tricks Hackathon
• ButterKnife
• Integration Azure Mobile Service
• Sample Project
• Q & A
Ade Rifaldi
• 2008 : IT UIN Jakarta (Graduated 2013)
• 2014 : Android Developer Radya Labs
• 2016 : Facilitator Android Kejar Batch 1
Intermediate Class
Contacts:
• Email : ade@radyalabs.com
• WA : 085719004268
• Linkedin : ade.rifaldi@gmail.com
Hackathon Experience
•2015 : Educode >> Samosir
•2016 : IWIC 11 >> Tarakan
•2016 : BCA Finhack >> EasySell
•2016 : Facebook >> Twinnies Menu
•2016 : TNI AD >> Lagan
Rapid Android Development for Hackathon
Tips Hackathon: Idea
•OOT is Bad Idea
Every hackathon has a topic. Don’t develop app that out of the topic.
•Problem Solution
Your app must solve the problem. Less technology but solve the problem better than less
solution but lot of technology.
•Wow Factor
Prepare cool stuff that can make jury excited.
•Focus to Demo: Hard code? Why not?
Don’t develop full version of the app. You not have much time for present it to the judgment
session. Even, you only have 1 minute to demo. Focus to the core.
Get Things Prepared
•The Team: Coder & Presenter
Hackathon wasn’t just about coding.
•Learn Hackathon Environment, First: API
•Create To Do List
•Never Forget Judgment Points
Problem Solution, Originality, User Friendly, API Implementation, Readiness, etc.
Steal Start is Fine
•Setup Group Chat
•Setup Project: User Interface,
Library
•Setup Git
•Setup Cloud Service / Web
Service
During Hackathon
•Take Frequent Breaks
Don't let you sick after hackathon
•Have Fun!
•Presentation:
Less Text, Lot Screen Shoot, Make a Story, Use Usual Words.
Tricks Hackathon
• ButterKnife
• Retrofit
• Cloud Service :
Azure Mobile Service
Firebase
AWS
• Json2Java : http://www.jsonschema2pojo.org/
• Icons : http://www.flaticon.com/
Without ButterKnife
• Declare
• Initialize
• OnClick
private Button btn_login;
btn_login = (Button) findViewById(R.id.btn_login);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//execute login
ButterKnife
• Add Pulgin apt to gradle (Project)
• Apply Plugin apt to gradle (Module)
• Add to gradle (Module)
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
compile 'com.jakewharton:butterknife:8.3.0'
apt 'com.jakewharton:butterknife-compiler:8.3.0'
apply plugin: 'android-apt'
ButterKnife for Bind View
• Declare
• Binding
@BindView(R.id.img) ImageView img;
@BindView(R.id.title) TextView title;
setContentView(R.layout.activity_news_detail);
ButterKnife.bind(this);
ButterKnife for OnClick
@OnClick(R.id.share)
protected void share(){
String content;
if (isi.length() > 114){
content = isi.substring(0, 114) + " ...";
}else {
content = isi;
}
shareContent(judul, content);
}
Integrate Azure Mobile
Service with Android
• Add Azure Mobile Service SDK
• Add Gson Library
compile 'com.microsoft.azure:azure-mobile-services-android-sdk:2.0.2+'
compile 'com.google.code.gson:gson:2.7'
Create Model from Azure Table
public class TPromo implements Serializable {
@com.google.gson.annotations.SerializedName("id")
private String id;
@com.google.gson.annotations.SerializedName("image")
private String image;
@com.google.gson.annotations.SerializedName("title")
private String title;
@com.google.gson.annotations.SerializedName("description")
private String description;
Setup Azure Service
public void setupAzureService() {
try {
// Create the Mobile Service Client instance, using the provided
// Mobile Service URL and key
mobileServiceClient = new MobileServiceClient(
GlobalVariable.AZURE_SERVICE_URL,
GlobalVariable.AZURE_SERVICE_KEY,
getActivity()).withFilter(new ProgressFilter());
// Get the Mobile Service Table instance to use
mobileServiceTable = mobileServiceClient.getTable(TPromo.class);
} catch (MalformedURLException e) {
AppUtility.logD("TAG", "There was an error creating " +
"the Mobile Service. Verify the URL");
}
}
Load Data
private void loadPromos(){
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
final MobileServiceList<TPromo> result = mobileServiceTable.execute().get();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
tPromos = new ArrayList<>();
tPromos.clear();
for(TPromo item : result){
tPromos.add(item);
}
adapter.getData().addAll(tPromos);
adapter.notifyItemInserted(adapter.getData().size() - 1);
list.setLayoutManager(linearLayoutManager);
list.setAdapter(adapter);
}
});
} catch (Exception exception) {
AppUtility.logD("MainActivity", "get comment Error");
}
return null;
}
}.execute();
}
Azure Mobile Service
Client Library Documentation
https://github.com/aderifaldi/SampleAzureMobileService
Sample Project
https://docs.microsoft.com/en-us/azure/app-service-mobile/app-
service-mobile-android-how-to-use-client-library

More Related Content

PDF
Front End Development for Back End Java Developers - Jfokus 2020
PPTX
Memaksimalkan Non-Blocking IO pada Node.js
PDF
Front End Development for Back End Java Developers - NYJavaSIG 2019
PDF
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
PDF
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
PDF
Front End Development for Back End Developers - vJUG24 2017
PDF
Front End Development for Back End Developers - UberConf 2017
PDF
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Front End Development for Back End Java Developers - Jfokus 2020
Memaksimalkan Non-Blocking IO pada Node.js
Front End Development for Back End Java Developers - NYJavaSIG 2019
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - UberConf 2017
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...

What's hot (20)

PDF
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
PDF
Get Hip with Java Hipster - JavaOne 2017
PPT
Os Johnson
PDF
Front End Development for Back End Developers - Devoxx UK 2017
PDF
Seven Simple Reasons to Use AppFuse
PDF
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
PDF
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
PDF
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
PDF
What's New in JHipsterLand - Devoxx Poland 2017
PPTX
Grails Spring Boot
PPTX
Pain Driven Development by Alexandr Sugak
PDF
Building a PWA with Ionic, Angular, and Spring Boot - GeeCON 2017
PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - DOSUG February 2016
PDF
CraftCamp for Students - Introduction to JHipster
PDF
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
PDF
GWTcon 2015 - Beyond GWT 3.0 Panic
PDF
Vietnam qa meetup
PDF
Spring IO '15 - Developing microservices, Spring Boot or Grails?
PPTX
Creating books app with react native
PDF
(Js) Export your own WebGL Viewer
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
Get Hip with Java Hipster - JavaOne 2017
Os Johnson
Front End Development for Back End Developers - Devoxx UK 2017
Seven Simple Reasons to Use AppFuse
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
What's New in JHipsterLand - Devoxx Poland 2017
Grails Spring Boot
Pain Driven Development by Alexandr Sugak
Building a PWA with Ionic, Angular, and Spring Boot - GeeCON 2017
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - DOSUG February 2016
CraftCamp for Students - Introduction to JHipster
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
GWTcon 2015 - Beyond GWT 3.0 Panic
Vietnam qa meetup
Spring IO '15 - Developing microservices, Spring Boot or Grails?
Creating books app with react native
(Js) Export your own WebGL Viewer

Viewers also liked (20)

PDF
Belajar Android Membuat Katalog Produk
PDF
Belajar Android Studio - Membuat Aplikasi Android Sederhana
PDF
Belajar Android Studio CRUD Data Mahasiswa
PDF
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
PPTX
Panada: An Introduction by Iskandar Soesman
PDF
Brighten Your Future With IT : Why I Need to Start Learn Programming
PDF
What is Big Data?
PPTX
Combining Data Mining and Machine Learning for Effective User Profiling
PPTX
IoT Devices, Which One is Right for You to Learn
PDF
Codepolitan profile 2016
PDF
How Kudo Elevates Undeserved Indonesians
PDF
Get in Touch with Internet of Things
PPTX
IoT Devices, Which One is Right for You to Learn?
PDF
E-Magazine Codepolitan : Perkembangan Internet of Things
PDF
Technology Stack KUDO.co.id
PDF
Kenalan Dengan Firebase Android
PDF
Android Fast Track CRUD Android PHP MySql
PDF
React Webinar With CodePolitan
PPTX
CodePolitan Media Partner SOP
PPTX
Machine Learning - Challenges, Learnings & Opportunities
Belajar Android Membuat Katalog Produk
Belajar Android Studio - Membuat Aplikasi Android Sederhana
Belajar Android Studio CRUD Data Mahasiswa
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Panada: An Introduction by Iskandar Soesman
Brighten Your Future With IT : Why I Need to Start Learn Programming
What is Big Data?
Combining Data Mining and Machine Learning for Effective User Profiling
IoT Devices, Which One is Right for You to Learn
Codepolitan profile 2016
How Kudo Elevates Undeserved Indonesians
Get in Touch with Internet of Things
IoT Devices, Which One is Right for You to Learn?
E-Magazine Codepolitan : Perkembangan Internet of Things
Technology Stack KUDO.co.id
Kenalan Dengan Firebase Android
Android Fast Track CRUD Android PHP MySql
React Webinar With CodePolitan
CodePolitan Media Partner SOP
Machine Learning - Challenges, Learnings & Opportunities

Similar to Rapid Android Development for Hackathon (20)

PDF
Android Cookbook Early Release Ian F Darwin
PDF
(Ebook) Android Cookbook by Ian F. Darwin ISBN 9781449374457, 144937445X
PDF
Beating Android Fragmentation
KEY
Whats New in Android
PDF
Android Cookbook 1st Edition Ian F. Darwin
PDF
(Ebook) Android Cookbook by Ian F. Darwin ISBN 9781449374457, 144937445X
KEY
Android lessons you won't learn in school
PDF
9 Writing Secure Android Applications
PPTX
Introduction to Android for Quality Engineers
PDF
Android development first steps
PDF
Gradle for Android Developers
PDF
Oops Youve Got A Mobile Enterprise App – DevFestWeekend 2018
PDF
Android Cookbook 2nd [early release] Edition Ian F. Darwin
PDF
HealthyCodeMay2014
PDF
Android Application Development Programming With The Google Sdk 1st Edition R...
PPTX
Mobile security part 1(Android Apps Pentesting)- Romansh yadav
PDF
Introducing Honeycomb
PDF
Sidiq Permana - Building For The Next Billion Users
PPTX
From Containerization to Modularity
PDF
Five Elements of Software Engineering for Mobile
Android Cookbook Early Release Ian F Darwin
(Ebook) Android Cookbook by Ian F. Darwin ISBN 9781449374457, 144937445X
Beating Android Fragmentation
Whats New in Android
Android Cookbook 1st Edition Ian F. Darwin
(Ebook) Android Cookbook by Ian F. Darwin ISBN 9781449374457, 144937445X
Android lessons you won't learn in school
9 Writing Secure Android Applications
Introduction to Android for Quality Engineers
Android development first steps
Gradle for Android Developers
Oops Youve Got A Mobile Enterprise App – DevFestWeekend 2018
Android Cookbook 2nd [early release] Edition Ian F. Darwin
HealthyCodeMay2014
Android Application Development Programming With The Google Sdk 1st Edition R...
Mobile security part 1(Android Apps Pentesting)- Romansh yadav
Introducing Honeycomb
Sidiq Permana - Building For The Next Billion Users
From Containerization to Modularity
Five Elements of Software Engineering for Mobile

More from CodePolitan (12)

PPTX
Pre-Order #2 CodePolitan Premium Member
PPTX
Materi devcussion 1.0
PPTX
Slides alexander-makarov
PPTX
Slides galvin-widjaja
PDF
Dev summit.io 2017 unlock your potential
PPTX
Slides imanzah-hidayat
PPTX
Ids johanes alexander
PDF
Vison final
PDF
PPTX
React ftw
PPTX
2017 10 28 angular in war - rev3
PPTX
Serverless Architecture
Pre-Order #2 CodePolitan Premium Member
Materi devcussion 1.0
Slides alexander-makarov
Slides galvin-widjaja
Dev summit.io 2017 unlock your potential
Slides imanzah-hidayat
Ids johanes alexander
Vison final
React ftw
2017 10 28 angular in war - rev3
Serverless Architecture

Recently uploaded (20)

PPTX
international classification of diseases ICD-10 review PPT.pptx
PPTX
innovation process that make everything different.pptx
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PPTX
presentation_pfe-universite-molay-seltan.pptx
PPTX
Introduction to Information and Communication Technology
PPTX
QR Codes Qr codecodecodecodecocodedecodecode
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
PDF
Triggering QUIC, presented by Geoff Huston at IETF 123
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PDF
Paper PDF World Game (s) Great Redesign.pdf
DOCX
Unit-3 cyber security network security of internet system
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
international classification of diseases ICD-10 review PPT.pptx
innovation process that make everything different.pptx
introduction about ICD -10 & ICD-11 ppt.pptx
Introuction about WHO-FIC in ICD-10.pptx
presentation_pfe-universite-molay-seltan.pptx
Introduction to Information and Communication Technology
QR Codes Qr codecodecodecodecocodedecodecode
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
An introduction to the IFRS (ISSB) Stndards.pdf
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
Triggering QUIC, presented by Geoff Huston at IETF 123
Slides PPTX World Game (s) Eco Economic Epochs.pptx
522797556-Unit-2-Temperature-measurement-1-1.pptx
Introuction about ICD -10 and ICD-11 PPT.pptx
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
INTERNET------BASICS-------UPDATED PPT PRESENTATION
SASE Traffic Flow - ZTNA Connector-1.pdf
Paper PDF World Game (s) Great Redesign.pdf
Unit-3 cyber security network security of internet system
The New Creative Director: How AI Tools for Social Media Content Creation Are...

Rapid Android Development for Hackathon

  • 1. Rapid Android Development for Hackathon Ade Rifaldi Android Developer | Radya Labs
  • 2. Table of Content • About Me • Tips & Tricks Hackathon • ButterKnife • Integration Azure Mobile Service • Sample Project • Q & A
  • 3. Ade Rifaldi • 2008 : IT UIN Jakarta (Graduated 2013) • 2014 : Android Developer Radya Labs • 2016 : Facilitator Android Kejar Batch 1 Intermediate Class Contacts: • Email : ade@radyalabs.com • WA : 085719004268 • Linkedin : ade.rifaldi@gmail.com
  • 4. Hackathon Experience •2015 : Educode >> Samosir •2016 : IWIC 11 >> Tarakan •2016 : BCA Finhack >> EasySell •2016 : Facebook >> Twinnies Menu •2016 : TNI AD >> Lagan
  • 6. Tips Hackathon: Idea •OOT is Bad Idea Every hackathon has a topic. Don’t develop app that out of the topic. •Problem Solution Your app must solve the problem. Less technology but solve the problem better than less solution but lot of technology. •Wow Factor Prepare cool stuff that can make jury excited. •Focus to Demo: Hard code? Why not? Don’t develop full version of the app. You not have much time for present it to the judgment session. Even, you only have 1 minute to demo. Focus to the core.
  • 7. Get Things Prepared •The Team: Coder & Presenter Hackathon wasn’t just about coding. •Learn Hackathon Environment, First: API •Create To Do List •Never Forget Judgment Points Problem Solution, Originality, User Friendly, API Implementation, Readiness, etc.
  • 8. Steal Start is Fine •Setup Group Chat •Setup Project: User Interface, Library •Setup Git •Setup Cloud Service / Web Service
  • 9. During Hackathon •Take Frequent Breaks Don't let you sick after hackathon •Have Fun! •Presentation: Less Text, Lot Screen Shoot, Make a Story, Use Usual Words.
  • 10. Tricks Hackathon • ButterKnife • Retrofit • Cloud Service : Azure Mobile Service Firebase AWS • Json2Java : http://www.jsonschema2pojo.org/ • Icons : http://www.flaticon.com/
  • 11. Without ButterKnife • Declare • Initialize • OnClick private Button btn_login; btn_login = (Button) findViewById(R.id.btn_login); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //execute login
  • 12. ButterKnife • Add Pulgin apt to gradle (Project) • Apply Plugin apt to gradle (Module) • Add to gradle (Module) classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' compile 'com.jakewharton:butterknife:8.3.0' apt 'com.jakewharton:butterknife-compiler:8.3.0' apply plugin: 'android-apt'
  • 13. ButterKnife for Bind View • Declare • Binding @BindView(R.id.img) ImageView img; @BindView(R.id.title) TextView title; setContentView(R.layout.activity_news_detail); ButterKnife.bind(this);
  • 14. ButterKnife for OnClick @OnClick(R.id.share) protected void share(){ String content; if (isi.length() > 114){ content = isi.substring(0, 114) + " ..."; }else { content = isi; } shareContent(judul, content); }
  • 15. Integrate Azure Mobile Service with Android • Add Azure Mobile Service SDK • Add Gson Library compile 'com.microsoft.azure:azure-mobile-services-android-sdk:2.0.2+' compile 'com.google.code.gson:gson:2.7'
  • 16. Create Model from Azure Table public class TPromo implements Serializable { @com.google.gson.annotations.SerializedName("id") private String id; @com.google.gson.annotations.SerializedName("image") private String image; @com.google.gson.annotations.SerializedName("title") private String title; @com.google.gson.annotations.SerializedName("description") private String description;
  • 17. Setup Azure Service public void setupAzureService() { try { // Create the Mobile Service Client instance, using the provided // Mobile Service URL and key mobileServiceClient = new MobileServiceClient( GlobalVariable.AZURE_SERVICE_URL, GlobalVariable.AZURE_SERVICE_KEY, getActivity()).withFilter(new ProgressFilter()); // Get the Mobile Service Table instance to use mobileServiceTable = mobileServiceClient.getTable(TPromo.class); } catch (MalformedURLException e) { AppUtility.logD("TAG", "There was an error creating " + "the Mobile Service. Verify the URL"); } }
  • 18. Load Data private void loadPromos(){ new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { try { final MobileServiceList<TPromo> result = mobileServiceTable.execute().get(); getActivity().runOnUiThread(new Runnable() { @Override public void run() { tPromos = new ArrayList<>(); tPromos.clear(); for(TPromo item : result){ tPromos.add(item); } adapter.getData().addAll(tPromos); adapter.notifyItemInserted(adapter.getData().size() - 1); list.setLayoutManager(linearLayoutManager); list.setAdapter(adapter); } }); } catch (Exception exception) { AppUtility.logD("MainActivity", "get comment Error"); } return null; } }.execute(); }
  • 19. Azure Mobile Service Client Library Documentation https://github.com/aderifaldi/SampleAzureMobileService Sample Project https://docs.microsoft.com/en-us/azure/app-service-mobile/app- service-mobile-android-how-to-use-client-library