Bootcamp Xl

  • View
    24

  • Download
    2

Embed Size (px)

DESCRIPTION

Bootcamp

Text of Bootcamp Xl

Bootcamp @XLFirst, Why You're Here: Welcome to Xtreme Labs. You've joined a team of highly motivated and highly skilled software developers with a single goal: Write innovative and high quality software using cutting edge tools and technologies, and do it fast! This will be a challenge and there are a lot of unknowns, but we hired you as both a student with a solid skill set and, more importantly, a creative problem solver with lots of potential. What this means is that you'll have a ton of questions, but we expect you to use the resources available at the lab and on the internet to better understand the problems you're trying to solve and find the answers. Make it a habit to go to Google or our wiki to begin your research . Of course, we have a strong experienced team here who can also give you pointers in the right direction and help answer your questions. Before you know it, you'll be an important part of this team and will be answering the questions as opposed to asking them. Pair Programming and Agile Development Before you get started on your first project, you'll need to get comfortable with how we develop software at Xtreme Labs. There are a few important methodologies we use which make our development team so good at what we do. The first two that you'll learn are Pair Programming and Agile Development/Extreme Programming. Pair Programming Read the Wikipedia article on pair programming here: http://en.wikipedia.org/wiki/ Pair_programming You'll be working in pairs during your entire work term with Xtreme Labs. You'll need to get familiar with the etiquette, swapping roles, and getting used to working with another individual. Once you get access to our wiki check out Greg's presentation on how to pair program effectively. Agile Development @ XL Click here for information on Agile Development. You will later learn how work gets done at XL by going through the Life of an Xtreme Engineer presentation on our internal wiki. Before You Begin Your Bootcamp... Learn git: this is how we do version control at Xtreme Labs. (Note if you dont have access to the links yet, skip them for now. These links are meant to help you learn our practices better and are not necessary for the complition of the bootcamp). Understand what git is from this presentation: Git Tutorial Complete this tutorial: http://library.edgecase.com/git_immersion/index.html Once you get access to the wiki read this page for more information: The XL Git Guide

Back to: Bootcamp @XL Android Bootcamp iOS Bootcamp PlayBook Bootcamp BlackBerry Bootcamp Rails Bootcamp HTML 5 Bootcamp

Android BootcampYour Challenge: Create an Android application that retrieves, parses and displays a list of tweets related to Justin Bieber (with #bieber hashtag). Each tweet should include information such as: the tweet content, the creation time, the user who tweeted and their profile picture. Load the tweets in a background thread so you dont block the UI thread. Resource: https://dev.twitter.com/docs/api/1/get/search Bonuses: 1) Add a menu item to open up a second screen with a text box on top, which lets users type in any hashtag string. This screen will then pull down all corresponding tweets for that string. 2) Dynamically refresh the tweets every 30 seconds. Display the new tweets with animation effect by pushing down the original tweets and fading in the new tweets. 3) Save and load the tweets using a Content Provider.

Now, lets go through some of the important topics in building an Android application... To set up your Dev Environment Download & Install SDK- http://developer.android.com/sdk/installing.html Download & Install Eclipse- http://www.eclipse.org/downloads Build & Run - http://developer.android.com/guide/developing/index.html ADB (Android Debug Bridge) - very useful command line tool for debugging/logging http:// developer.android.com/guide/developing/tools/adb.html Quick Start Create a project, manipulate the look and feel- http://developer.android.com/resources/tutorials/ hello-world.html Android Fundamentals - an Overview http://developer.android.com/guide/topics/fundamentals.html Main Building Blocks Activities & Activity Life cycle - the presentation layer, e.g. a screen that the user sees. An application typically has multiple activities, and the users flip back and forth among them EXTREMELY IMPORTANT! http://developer.android.com/guide/topics/fundamentals/activities.html Intents - asynchronous messages which allow the application to request functionality from other services or activities - ALSO SUPER IMPORTANT! http://developer.android.com/guide/topics/intents/intents-filters.html

Resources - how to get screen layouts, colours, images into your app http://developer.android.com/guide/topics/resources/index.html Services - perform background tasks and dont have any UI components http://developer.android.com/guide/topics/fundamentals/services.html Content Providers - interfaces for sharing data between applications http://developer.android.com/guide/topics/providers/content-providers.html Broadcast Receiver - a system-wide publish/subscribe mechanism, receives system messages and implicit intents http://developer.android.com/reference/android/content/BroadcastReceiver.html User Interface Overview - http://developer.android.com/guide/topics/ui/index.html Layouts - http://developer.android.com/guide/topics/ui/layout-objects.html Adapters - http://developer.android.com/guide/topics/ui/binding.html Threading General - http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html Async Task - http://developer.android.com/reference/android/os/AsyncTask.html

Networking HttpClient library: http://hc.apache.org/httpcomponents-client-ga/examples.html Tutorial: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/index.html Sample Code Full list of samples - http://developer.android.com/resources/browser.html?tag=sample API Demo (recommended) - Lots of UI demos: layouts, views, preferences, menus, etc Note Pad (recommended) - adapter views, content provider, data access, intents Install the samples - http://developer.android.com/resources/samples/get.h Back to: Bootcamp @XL Android Bootcamp iOS Bootcamp PlayBook Bootcamp BlackBerry Bootcamp Rails Bootcamp HTML 5 Bootcamp

iOS BootcampYour goal: Write an application that pulls down and displays a list of tweets related to Justin Bieber! When clicked, each tweet should push a new view controller that displays the full tweet text (and account photo if applicable). Loading and parsing of data should not occur on the UI Thread (asynch request can be helpful)

Getting Started: Need help with C? http://cocoadevcentral.com/articles/000081.php

Need help with Objective-C? Basics: http://cocoadevcentral.com/d/learn_objectivec/ Apple: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/ Introduction/introObjectiveC.html

Need help starting an iPhone project? http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhone101/Articles/ 00_Introduction.html Important Resources: These are extremely useful resources. Scan them over to get a basic grasp of certain fundamental concepts. At a later date, after you have become more familiar with the basics of the platform, revisit each in detail in order to gain a strong understanding of best practices for creating applications for iOS.

UIViewController Programming Guide: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ BasicViewControllers/BasicViewControllers.html

UITableView Programming Guide: http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/ TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html

iOS UI Elements: http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/ UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW1

iOS Application Design: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/ iPhoneOSProgrammingGuide/Introduction/Introduction.html

Core Design: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/ iPhoneOSProgrammingGuide/CoreApplication/CoreApplication.html#//apple_ref/doc/uid/ TP40007072-CH3-SW14

Back to: Bootcamp @XL Android Bootcamp iOS Bootcamp PlayBook Bootcamp BlackBerry Bootcamp Rails Bootcamp HTML 5 Bootcamp

PlayBook BootcampFollow the steps in this tutorial to create your first BlackBerry PlayBook App! You will learn how to: a) Set up the development environment b) Write the application code c) Test your fully functional app You will be creating a simple Twitter based app, where you will display a list of tweets tagged with any hashtag you want (ideas: #Toronto, #mobile) Set up the development environment Installation i) Download the trial version of Adobe Flash Builder 4.5 from the Adobe website: http://www.adobe.com/ products/flash-builder.html ii) Download VMware Player for Windows/Linux or VMware Fusion for Mac, which you will need to run simulations: http://downloads.vmware.com/d/ ii) Download the Blackberry Tablet OS SDK Win: https://bdsc.webapps.blackberry.com/bdsc/index.jsp? lang=na&code=DC727151E5D55DDE1E950767CF861CA5&dl=6A62D38E0A578C4DCDD20E2C85C5 9BCF#swdregister Mac: https://bdsc.webapps.blackberry.com/bdsc/index.jsp? lang=na&code=DC727151E5D55DDE1E950767CF861CA5&dl=62D1FECF90C85C2BC87F823BAD58 7D2E#swdregister Linux: https://bdsc.webapps.blackberry.com/bdsc/index.jsp? lang=na&code=DC727151E5D55DDE1E950767CF861CA5&dl=41DBC9C206C52B7F83C07085E58EC ADA#swdregister Configuration i) Once you have installed all three, open VMware and open the playbook virtual machine by going to your blackberry sdk folder and selecting BlackBerryPlaybookSimulator-1.0.6 and selecting the .vmx file. ii) Open Flash Builder, 1. File->Ne