GOOGLE’S
MAL
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 )
INTRODUCTION
Instructor
Aly Osama
Software Engineer-
Ain Shams University
RULES
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
ICE BREAKING
QUICK REVIEW OF
LESSON CONTENT
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
@Override
protected 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" />
<FrameLayout
android: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
DISCUSSION OF
MATERIALS AND
ISSUES
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)
EVENT OF THE
WEEK
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 !
SHARING
EXPERIENCE
ANDROID
RELATED
TOPIC
For any help feel free to contact me!
Aly Osama
alyosama@gmail.com
https://eg.linkedin.com/in/alyosama
THANK YOU!

Android Udacity Study group 1

  • 1.
    GOOGLE’S MAL S T UD Y G R O U P 1 A LY O S A M A
  • 2.
    AGENDA 1. Introduction andattendance ( 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 )
  • 3.
  • 4.
  • 6.
  • 7.
    QUESTIONS • If youhave any question 1. Google it 2. Post on forum 3. Ask Udacity Team
  • 8.
    PENALTIES • 5 minuteslate ( 2 EGP ) • 10 Minutes late ( 5 EGP ) • 15 Minutes late ( 10 EGP ) • 20 Minutes late ( 20 EGP )
  • 9.
    POINTS POLICY – Aska 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 )
  • 10.
  • 11.
  • 14.
  • 15.
    WEEK 1: CREATEPROJECT 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
  • 16.
    WEEK 1: CREATEPROJECT 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
  • 17.
    WEEK 1: CREATEPROJECT SUNSHINE https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
  • 18.
    WEEK1: API LEVELCLARIFICATIONS https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821
  • 19.
    WEEK1: API LEVELCLARIFICATIONS 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
  • 20.
    WEEK1: ACTIVITIES &FRAGMENTS Wireframest res/layout (default = 2 screens) res/layout-sw600dp (sw=smallestwidth, 7in tablet=600dp)
  • 21.
    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 @Override protected 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
  • 22.
    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" /> <FrameLayout android:id="@+id/weather_detail_container" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="4" /> </LinearLayout> layout-sw600dp/activity_main.xml
  • 23.
  • 24.
    WEEK1: LAYOUTS &VIEWGROUPS http://developer.android.com/guide/topics/ui/declaring-layout.html#layout-params
  • 25.
    WEEK1: ADAPTERS FORDYNAMIC LAYOUTS http://developer.android.com/guide/topics/ui/declaring-layout.html#AdapterViews
  • 26.
    WEEK1: BINDING ADAPTERTO VIEW https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821/m-1604029757
  • 27.
    WEEK1: BINDING ADAPTERTO VIEW http://developer.android.com/guide/topics/ui/declaring-layout.html#FillingTheLayout
  • 28.
  • 29.
    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)
  • 30.
    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)
  • 31.
    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)
  • 32.
  • 33.
    TOPICS • Object Orientedprogramming with Java • Design Patterns • Git
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
    SMALL PROJECT 1. Picka simple project idea 2. Collect requirements 3. Draw wireframes 4. Code :D
  • 39.
  • 40.
  • 41.
  • 42.
    For any helpfeel free to contact me! Aly Osama alyosama@gmail.com https://eg.linkedin.com/in/alyosama
  • 43.