Successfully reported this slideshow.

Caelum Day In Rio

1,413 views

Published on

Published in: Technology, Art & Photos
  • Be the first to comment

  • Be the first to like this

Caelum Day In Rio

  1. 1. O mundo desmartphones em suas mãos com Google Android
  2. 2. Quem são esses caras?
  3. 3. Daniel Passos @passosArquiteto de Software Instrutor
  4. 4. Fábio Pimentel@fabiopimentel Instrutor
  5. 5. ?
  6. 6. Open Handset Alliance
  7. 7. http://source.android.com
  8. 8. X
  9. 9. Texthttp://www.youtube.com/watch?v=ZwzXvRpoPP4
  10. 10. X
  11. 11. 1.5 1.5 JSE
  12. 12. Symbian// HelloWorld.cpp//#include "CommonFramework.h"// do the exampleLOCAL_C void doExampleL(){_LIT(KHelloWorldText,"Hello world!n");console->Printf(KHelloWorldText);}// HelloWorld.mmp//// Copyright (c) 2000 Symbian Ltd. All rights reserved.//// using relative paths for sourcepath and user includes//TARGET HelloWorld.exeTARGETTYPE exeUID 0//SOURCEPATH .SOURCE HelloWorld.cpp//USERINCLUDE .USERINCLUDE ..CommonFrameworkSYSTEMINCLUDE Epoc32include//
  13. 13. Windows Mobileusing System;using System.Windows.Forms;public class HelloWorld { public static void Main() { MessageBox.Show( "Hello World!" ); }}
  14. 14. // helloworldAppDelegate.m // helloworld #import "helloworldAppDelegate.h" #import "MyView.h" Objective C @implementation helloworldAppDelegate @synthesize window; @synthesize contentView; // Levi: Tell the compiler to synthesize relevant accessors @synthesize textView; - (void)applicationDidFinishLaunching:(UIApplication *) application {// helloworldAppDelegate.h // Create window// helloworld self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]#import <UIKit/UIKit.h> self.contentView = [[[MyView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]] autorelease];@class MyView; [window addSubview:contentView];@interface helloworldAppDelegate : NSObject { // UIWindow *window; self.textView = [[[UITextView alloc] initWithFrame: MyView *contentView; CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)] autorelease]; // Levi: Define textView object [textView setEditable:YES]; UITextView *textView; [textView setText:@"Hello} [contentView [window makeKeyAndVisible];@property (nonatomic, retain) UIWindow *window; }@property (nonatomic, retain) MyView *contentView;// Levi: Declare textView as a property - (void)dealloc {@property (nonatomic, retain) UITextView *textView; // Levi: Release the textView [textView release];@end [contentView release]; [window release]; [super dealloc]; } @end
  15. 15. Androidpackage com.android.hello;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello World"); setContentView(tv); }}
  16. 16. Legal! Mas como essa bagaça funciona?
  17. 17. !=
  18. 18. 1.5 1.5 JSE
  19. 19. JVM
  20. 20. Surface Manager
  21. 21. OpenGLAPI livre utilizada para desenvolvimento de aplicativos gráficos,ambientes 3D, jogos, entre outros. http://www.youtube.com/watch?v=KtzTL3y4RTA
  22. 22. Media Framework
  23. 23. SQLite‣ É Software Livre/domínio público e Multiplataforma‣ É um mecanismo de armazenamento seguro com transações ACID‣ Implementa a maioria do SQL92‣ Suporta bases de dados acima de 2 terabytes‣ Sem dependências externas
  24. 24. WebKit
  25. 25. libc#include <stdio.h>#include <unistd.h>int main(int argc, char **argv, char**env) { int i; for (i = 0; i < argc; i++) { printf("argv[%d] = %sn", i, argv[i]); } for (i = 0; env[i] != NULL; i++) { printf("env[%d] = %sn", i, env[i]); } printf("PATH = %sn", getenv("PATH")); setenv("HELLO", "world!", 1); putenv("GOODBYE=cruel world!"); printf("HELLO = %sn", getenv("HELLO")); printf("GOODBYE = %sn", getenv("GOODBYE")); return 0;}
  26. 26. Activity # Tela # Independente # Pode ser invocada por outra app
  27. 27. Activity
  28. 28. Activity Activity starts onCreate() onStart() onResume() Activity running
  29. 29. Activity Return to app onStart() Activity onResume() runningActivity destroyed Recebe Chamada onDestroy() onPause() Pouca Memoria onStop()
  30. 30. Content Provider # Armazenar e recupera dados # Consome dados de outras apps # Expoem dados da sua aplicação
  31. 31. Broadcast receiver # Responde as mensagens do sistema
  32. 32. Mas como eu faço pra programar?
  33. 33. http://developer.android.com/sdk
  34. 34. 1.023/09/2008
  35. 35. 1.109/02/2009
  36. 36. 1.5 30/04/2009Cupcake ■ Widget ■ Gravação de Video ■ Gallery: Video playback (MPEG-4 & 3GP formats) ■ Bluetooth: Suporte a Stereo (A2DP and AVRCP profiles), Auto Pareamento ■ Browser: Copy and paste ■ Animações em trasições de tela ■ Upload YouTube ■ Upload Picasa
  37. 37. 1.6 15/09/2009Donut ■ Voice Search ■ Android Market: Facilitaram a busca, screenshots, etc. ■ Melhoria no acesso a câmera ■ Display: Suporte a resolução WVGA
  38. 38. 2.0/2.1 26/10/2009Eclair ■ Sincronismo com multiplas contas, inclusive Exchange ■ Bluetooth: 2.1 ■ Camera: Flash, zoom digital, Scene mode, White balance, Color effect, Macro focus ■ Browser: Double-tap zoom, Support for HTML5 ■ System: Otimização de Hardware ■ Display: Suporte a novos tamanhos de tela ■ Maps: Google Maps 3.1.2 ■ Live Wallpapers: Imagens animadas na Home screen
  39. 39. 2.2 20/05/2010Froyo ■ System: Otimização de memoria e performance ■ Chromes V8 JavaScript engine ■ USB tethering & Wi-Fi hotspot ■ Discagem por voz e compartilhamento de contatos através de Bluetooth ■ Adobe Flash support ■ DPI screens (320 dpi), such as 4" 720p
  40. 40. 2.3/2.3.3 06/12/2010Gingerbread ■ Display: extra-large (WXGA) ■ Suporte nativo a SIP VoIP ■ Near Field Communication ■ Media: WebM/VP8 & AAC audio encoding
  41. 41. 3.0 26/02/2011Honeycomb ■ Pensado e otimozado para tablets ■ System Bar: acesso rápido às notificações, status, e botões de navegação suave disponível na parte inferior da tela. ■ Action Bar: Acesso a opções contextual, navegação, widgets, ou outros tipos de conteúdo no topo da tela. ■ Multitasking: ■ Suporte a video chat com Google Talk ■ Suporte a multiplos processadores de multiplos nucleos
  42. 42. 3.1 10/05/2011Honeycomb ■ Conectividade com acessórios por USB ■ Suporte a teclados externos ■ Suporte a joysticks & gamepads
  43. 43. ? ?Ice Cream Sandwich
  44. 44. http://developer.android.com/sdk/eclipse-adt.html Android Development Tools (ADT)
  45. 45. E agora?http://developer.android.com*http://groups.google.com/group/android-developers/ (Oficial)*http://groups.google.com/group/androidbrasil-dev
  46. 46. FJ-57 |Desenvolvimento móvel com Google Android
  47. 47. Obrigado! Daniel Passos Fabio Pimentel @passos @fabiopimenteldaniel.passos@caelum.com.br fabio.pimentel@caelum.com.br

×