android udacity study group 1
TRANSCRIPT
G O O G L E ’SM A L
S T U D Y G R O U P 1
A LY O S A M A
AGENDA
1. Introduction and attendance ( 10 Minutes )
2. Rules ( 5 Minutes )
3. Ice Breaking ( 15 Minutes )
4. Quick Review of lesson Content ( 30 Minutes )
5. Discussion of Materials and Issues ( 30 Minutes )
6. Event of the week ( 30 Minutes )
7. Simple Project ( 60 Minutes )
8. Sharing Experience ( 60 Minutes )
I N T R O D U C T I O N
InstructorAly Osama
Software Engineer-
Ain Shams University
R U L E S
QUESTIONS
• If you have any question
1. Google it
2. Post on forum
3. Ask Udacity Team
PENALTIES
• 5 minutes late ( 2 EGP )
• 10 Minutes late ( 5 EGP )
• 15 Minutes late ( 10 EGP )
• 20 Minutes late ( 20 EGP )
POINTS POLICY
–Ask a Question SG
( 1+ Point )
–Ask a question on the forum
( 5+ Point )
–Answer a Question SG
( 10+ Points )
–Answer a question on the forum
( 15 + Points )
– Share a good idea
( 20+ Points )
REWARD
I C E B R E A K I N G
Q U I C K R E V I E W O F L E S S O N C O N T E N T
WEEK 1: CREATE PROJECT SUNSHINE
• Lesson 1: Create Project Sunshine with a Simple UI (5-8 hrs)
• Starting by installing Android Studio, you’ll create your first project with a simple list-based
user interface and built and deploy it to virtual and actual devices. You’ll also discover what
makes mobile - and Android in particular - a unique environment for app development.
• Android Studio, Gradle, and debugging tools
• User Interface and Layout managers
• ListViews and Adapters
WEEK 1: CREATE PROJECT SUNSHINE
Code Steps (GitHub)
1. Hello World
2. List Item Layout Exercise
3. Use List View
4. Add Dummy Data
5. Initialize Array Adapter
6. Bind Adapter to List
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
WEEK 1: CREATE PROJECT SUNSHINE
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
WEEK1: API LEVEL CLARIFICATIONS
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
WEEK1: API LEVEL CLARIFICATIONS
Udacity recommends API 10
In your final projects, I recommend API 15 and above. However, to get Sunshine app
done, stick with API 10 so you can continue to follow/leverage solutions provided
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
WEEK1: ACTIVITIES & FRAGMENTS
Wireframest
res/layout (default = 2 screens)
res/layout-sw600dp(sw=smallestwidth, 7in tablet=600dp)
WEEK1: ACTIVITIES & FRAGMENTS
<fragment xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/fragment_forecast"android:name="com.example.android.sunshine.app.ForecastFragment"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.android.sunshine.app.ForecastFragment"tools:layout="@android:layout/list_content"
/>layout/activity_main.xml
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (findViewById(R.id.weather_detail_container) != null) {
mTwoPane = true; if (savedInstanceState == null) {getSupportFragmentManager().beginTransaction()
.replace(R.id.weather_detail_container, new DetailFragment())
.commit();}
} else { mTwoPane = false;}
ForecastFragment forecastFragment = ((ForecastFragment)getSupportFragmentManager().findFragmentById(R.id.fragment_forecast));
forecastFragment.setUseTodayLayout(!mTwoPane);
app/MainActivity.java
https://github.com/udacity/Sunshine/tree/6.10-update-map-intent
WEEK1: ACTIVITIES & FRAGMENTS
https://github.com/udacity/Sunshine/tree/6.10-update-map-intent
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:baselineAligned="false"android:divider="?android:attr/dividerHorizontal"android:orientation="horizontal"tools:context="com.example.android.sunshine.app.MainActivity">
<!-- This layout is a two-pane layout for the Items master/detail flow. --><fragment
android:id="@+id/fragment_forecast"android:name="com.example.android.sunshine.app.ForecastFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="2"tools:layout="@android:layout/list_content" />
<FrameLayoutandroid:id="@+id/weather_detail_container"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="4" />
</LinearLayout>
layout-sw600dp/activity_main.xml
WEEK1: RESPONSIVE LAYOUTS
http://developer.android.com/guide/topics/ui/declaring-layout.html#CommonLayouts
WEEK1: LAYOUTS & VIEWGROUPS
http://developer.android.com/guide/topics/ui/declaring-layout.html#layout-params
WEEK1: ADAPTERS FOR DYNAMIC LAYOUTS
http://developer.android.com/guide/topics/ui/declaring-layout.html#AdapterViews
WEEK1: BINDING ADAPTER TO VIEW
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821/m-1604029757
WEEK1: BINDING ADAPTER TO VIEW
http://developer.android.com/guide/topics/ui/declaring-layout.html#FillingTheLayout
D I S C U S S I O N O F M AT E R I A L S A N D I S S U E S
WEEK 1: QUESTIONS?
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
● Welcome to Developing Android Apps (1:04)
● Introducing your instructors (1:59)
● Are You Ready for this course? (0:09)
● Create Project Sunshine (1:16)
● Course Goals and Prerequisites (1:53)
● Introducing More Sunshine (0:24)
● Installing Android Studio (0:56)
● Launching on a Device (1:19)
● Create a New Android Studio Project (1:34)
● Select a Min and Target SDK (2:11)
● Select a Target SDK (0:12) (Solution)
● Finish Creating a New Project (3:16)
WEEK 1: QUESTIONS?
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
• Install HAXM (0:53)
• Launching Sunshine and Creating an AVD (2:09)
• Android Software Stack and Gradle (2:28)
• Debugging with a Physical Device (1:01)
• Start to build the app (0:16)
• Create a User Interface (2:44)
• UI Element Quiz (0:32)
• Add List Item XML (0:35) (Solution)
• Introducing Responsive Design (0:25)
• Why Absolute Layout is Evil (1:24)
• Responsive Design Thinking (0:47)
• Layout Managers (1:02)
WEEK 1: QUESTIONS?
https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
● ScrollViews vs. ListViews (0:51) (Task) (Solution)
● ListView + Recycling (1:40)
● Add ListView to layout (0:55) (Task) (Solution)
● Create some fake data (0:27) (Task) (Solution)
● Adapters (2:20)
● Initialize Adapter (1:44) (Task) (Solution)
● Finding Views with findViewById() (2:08) (Task)
(Solution)
● Lesson 1 Recap (0:38)
● (Storytime) Android Platform (2:49)
E V E N T O F T H E W E E K
TOPICS
• Object Oriented programming with Java
• Design Patterns
• Git
OOP
DESIGN
PATTERNS
https://www.raywenderlich.com/109843/common-design-patterns-for-android
GIT
Small Project
SMALL PROJECT
1. Pick a simple project idea
2. Collect requirements
3. Draw wireframes
4. Code :D
Time to
CODE !
S H A R I N G E X P E R I E N C E
ANDROID
RELATED
TOPIC
For any help feel free to contact me!
Aly Osama
https://eg.linkedin.com/in/alyosama
THANK YOU!