You are on page 1of 49

Construindo sua

aplicao para
conquistar os usurios
Andr Silva
@andreronsilva
github.com/andrelrs
Desenvolvedor Android no
gosta de fazer aplicaes
bonitas.
Autor no revelado
Qualquer um de ns ficaria
chateado, desmotivado ou
abatido.
Joseph Climber
Vamos pensar no layout...
por que no usar o do
concorrente?
d.android.com/design
androidniceties.tumblr.com
youtube.com/user/
androiddevelopers
Com o layout definido, est
na hora de comear o
projeto!?
www.androidbootstrap.com
ActionBar obrigatrio em
qualquer aplicativo!
Independente da verso do
android.
www.actionbarsherlock.com
MainActivity.java
res/values/styles.xml
AndroidManifest.xml
jgilfelt.github.com/android-
actionbarstylegenerator
Temos o layout, a estrutura
do cdigo e agora mo na
massa no projeto?
Usabilidade (UX)
Como fazer o envio das
imagens sem afetar a UX
do aplicativo?
3G no Brasil
Deixar a tela do aplicativo
"esperando" ou "carregando"
Deixar a tela "livre" para que
o usurio continue usando o
aplicativo, e o envio ser feito
em background.
Deixar a usabilidade fluente.
Como assim?
Vamos ento falar das
tcnicas de background.
AsyncTask
Handler
Looper
loopj.com/android-async-http
Mas e quando a timeline tem
muitas imagens qual a
melhor estratgia?
1 2
3
Service / IntentService
No tem bala de prata
UrlImageViewHelper
github.com/koush/UrlImageViewHelper
UrlImageViewHelper.setUrlDrawable
(imageView, "http://example.com/image.
png");
Injeo de
dependncia.
(Dependency Injection)
DI Frameworks MVC
No Android...
Roboguice
Exemplo do Roboguice
@ContentView(R.layout.main)
public class AstroboyMasterConsole extends RoboActivity {
@InjectView(R.id.self_destruct) Button selfDestructButton;
@InjectView(R.id.say_text) EditText sayText;
@InjectView(R.id.brush_teeth) Button brushTeethButton;
@InjectView(tag="fightevil") Button fightEvilButton;
@Inject AstroboyRemoteControl remoteControl;
@InjectResource(R.anim.expletive_animation) Animation
expletiveAnimation;
@Inject Vibrator vibrator;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
Annotations Android
github.com/excilys/androidannotations
@EActivity(R.layout.my_activity)
public class MyActivity extends Activity {
@ViewById EditText myEditText;
@ViewById(R.id.myTextView) TextView textView;
@StringRes(R.string.hello) String helloFormat;
@ColorRes int androidColor;
@BooleanRes boolean someBoolean;
@SystemService NotificationManager notificationManager;
@Click void myButtonClicked() {
String name = myEditText.getText().toString();
setProgressBarIndeterminateVisibility(true);
someBackgroundWork(name, 5);
}
}
Muito Obrigado!

You might also like