คอร์สอบรมนักพัฒนาแอนดรอยด์ใน 24 ชั่วโมง สู่ระดับมืออาชีพ
คอร์สเนื้อหาอัดแน่นที่จะช่วยให้คุณประหยัดเวลาศึกษาศาสตร์การพัฒนาแอพฯแอนดรอยด์จาก 1 ปีเหลือเพียงไม่กี่ชั่วโมง

฿5000 ฿9000

  จำนวน 204 เลคเชอร์
  ความยาว 25 ชั่วโมง 27 นาที
  ภาษา ไทย
  การเข้าถึงเนื้อหา ตลอดชีพ

สิ่งที่คุณจะได้จากคอร์สนี้

คอร์สอบรมนักพัฒนาแอนดรอยด์ที่จะเปลี่ยนคุณจาก Java Developer ให้กลายเป็น Android Developer พร้อมช่วยให้คุณประหยัดเวลาศึกษาด้วยตัวเอง 1 ปีแล้วไม่รู้ไปถูกทางหรือเปล่า ให้เหลือเพียงไม่กี่ชั่วโมงและไปถูกทางแน่นอน

คอร์สถูกออกแบบมาด้วยความเชื่อที่ว่า ประสบการณ์เป็นครูที่ดีที่สุด จึงเน้นการลงมือทำเป็นหลักพร้อมอธิบายทุกอย่างอย่างเข้าใจง่ายในทุกสิ่งที่ทำ เนื้อหาอธิบายด้วยภาษาง่ายๆและสื่อการสอนถูกออกแบบมาให้เข้าใจง่ายจนรู้สึกเหมือนว่าแอปแอนดรอยด์กลายเป็นของที่จับต้องได้ เพื่อให้สอดคล้องกับระบบการเรียนรู้ของมนุษย์

ความยากของเนื้อหาจะอยู่ตั้งแต่ระดับเริ่มต้นจนถึงเลยระดับกลางไป โดยการสอนจะเน้นไปที่ "แก่น" หรือ "Fundamental" ให้สุดท้ายทุกคนสามารถคิดต่อเองได้และสามารถประยุกต์ไปยังงานที่ตัวเองต้องการได้อย่างง่ายดาย

เนื้อหาถูกเรียบเรียงใหม่หมดเพื่อให้เหมาะสมกับการเรียนในแบบออนไลน์ จะใช้การเปรียบเปรยสิ่งต่างๆในแอนดรอยด์เข้ากับวัตถุในโลกจริงเพื่อความเข้าใจง่ายซึ่งมั่นใจมากว่าเข้าใจง่ายและเป็นมิตรต่อนักพัฒนา โดยผ่านการพิสูจน์มาแล้วจากคลาสสอนสดกว่า 20 ครั้ง

นอกจากนั้น เนื่องจากศาสตร์การพัฒนาแอปแอนดรอยด์นั้นถูกพัฒนาเปลี่ยนไปเรื่อยๆ เนื้อหาในคอร์สนี้ก็จะมีการปรับปรุงอัพเดตเพื่อให้ตามยุคสมัยอยู่ตลอดเวลาด้วยเช่นกัน และหากมีเทคนิคอะไรใหม่ๆน่าสนใจก็จะเพิ่มเนื้อหาออกไปเรื่อยๆครับ

ความรู้ที่ต้องมีก่อนเริ่มเรียน

สองเรื่องที่ต้องรู้ก่อนจะเรียนเนื้อหาคลาสนี้ได้แก่

1) Java Programming - ภาษาที่ใช้สอนในคอร์สนี้คือ Java ดังนั้นผู้เรียนควรมีประสบการณ์การเขียนด้วยภาษา Java มาแล้ว ไม่งั้นอาจจะเรียนตามเนื้อหาไม่ทันได้ โดยความรู้ของ Java Programming ที่ต้องมีก็เป็นพื้นฐานทั่วไปเช่นกัน อันได้แก่

- OOP

- Class

- Access Modifiers

- Interface

- Listener

- Generic

- Collection

- Thread

- Exception Handling (try / catch / throw)

ต้องอ่านโค้ดด้านล่างนี้ออกอย่างง่ายดายครับ

public class Test {
    public interface TestListener {
        public void onEventTrigged(Integer param);
    }

    public void doSomething(TestListener listener) {
        try {
            loadData(listener);
        } catch (IOException e) {
        }
    }

    private void loadData() throws IOException {
        if (listener == null)
            throw new IOException("Listener could not be null");
        // Do Something
    }
}

2) พื้นฐาน XML - เนื่องจากการทำ Resource ต่างๆในแอนดรอยด์เราจะทำด้วย XML กัน แต่ตรงนี้ไม่น่าใช่ปัญหาเพราะสิ่งที่ต้องรู้คือพื้นฐานก็พอ แค่รู้ว่ามันคืออะไร เปิดปิด Tag ยังไงก็เรียบร้อยครับ

และแน่นอนว่าทุกคนควรจะเป็นโปรแกรมเมอร์มาอยู่แล้วเนื่องจากเนื้อหาในคลาสนี้ค่อนข้างหนักมาก จะไม่เหมาะกับผู้ที่เพิ่งเริ่มต้นหัดเขียนโปรแกรมเท่าไหร่ สิ่งที่ต้องมีเลยในทุกคนคือ "Programming Logic in mind" คือสามารถแปลงสิ่งต่างๆให้กลายเป็นลอจิคเชิงโปรแกรมมิ่งได้หมด ไม่สามารถอธิบายคำนิยามของสิ่งนี้ได้ แต่ถ้าคุณเป็นโปรแกรมเมอร์คุณจะพยักหน้าเข้าใจสิ่งนี้ทันทีครับ

และสุดท้าย ทุกคนควรจะเคยใช้แอนดรอยด์มาอยู่แล้ว ในคลาสนี้จะไม่สอนว่าแอนดรอยด์ใช้ยังไงแต่เราจะสอนโดยอนุมานว่าทุกคนต้องเคยใช้แอนดรอยด์มาอยู่แล้วเพื่อที่จะได้รู้วิธีใช้งานและพาไปสู่ UX ที่ดีได้ครับ

Avg Rating: 4.9

5 stars
674
4 stars
27
3 stars
6
2 stars
1
1 star
0

ผู้สอน

สิทธิพล พรรณวิไล

A full stack developer and Android GDE

A full-stack developer with more than 6 years experience on Android Application Development and more than 12 years in Mobile Application Development industry. Also has skill in Infrastucture, Service Side, Design, UI&UX, Hardware, Optimization, Cooking, Photographing, Blogging, Training, Public Speaking and do love to share things to people in the world!

Curriculum

Section 1 - Introduction
  • Preview Lecture 1 : Orientation
    03:15
  • Preview Lecture 2 : Course Overview
    02:44
  • Preview Lecture 3 : Top 8 reasons caused Android App went below standard
    06:42
  • Lecture 4 : [Download] Slides
    Article
  • Preview Lecture 5 : Course Outline Preview
    Article
Section 2 - Development Tools
  • Preview Lecture 6 : Install JDK 1.8
    01:03
  • Preview Lecture 7 : Install Android Studio and Android SDK
    02:07
  • Preview Lecture 8 : SDK Package :: Tools
    01:34
  • Preview Lecture 9 : SDK Package :: Android SDK Platform
    03:29
  • Preview Lecture 10 : SDK Package :: Which SDK Platform to install?
    05:11
  • Preview Lecture 11 : SDK Package :: Extras
    01:43
  • Preview Lecture 12 : Install Genymotion
    00:48
Section 3 - Hello World
  • Lecture 13 : Create a new project
    03:33
  • Lecture 14 : Where to Run
    04:07
  • Lecture 15 : Install ADB Driver for Windows
    03:32
  • Lecture 16 : Access XML element from Java code
    06:40
  • Lecture 17 : 3 Parts of Android Application Development
    00:45
Section 4 - Dive into the project
  • Lecture 18 : Project and Modules
    06:21
  • Lecture 19 : How is the application compiled? : Gradle & Gradle Script
    11:37
  • Lecture 20 : Speed up build time
    06:44
Section 5 - How to think like Android Developer & Designer
  • Lecture 21 : Basic Concept on how Android app is designed
    09:04
  • Lecture 22 : How is Android App scaled?
    14:24
  • Lecture 23 : Android Appication's Theme: Holo & Material
    04:10
  • Lecture 24 : Recap
    01:15
Section 6 - Layouts
  • Lecture 25 : Android Basic UI Foundation
    01:53
  • Lecture 26 : Download: Android Cheese Sheet
    00:50
  • Lecture 27 : Introduction to Layout
    06:47
  • Lecture 28 : LinearLayout
    18:51
  • Lecture 29 : RelativeLayout
    16:15
  • Lecture 30 : FrameLayout
    04:38
  • Lecture 31 : Other Layouts
    02:49
  • Lecture 32 : Understand the Pattern
    03:30
Section 7 - Views Part 1
  • Lecture 33 : View
    01:26
  • Lecture 34 : TextView
    09:19
  • Lecture 35 : EditText
    11:36
  • Lecture 36 : Button
    02:20
  • Lecture 37 : Code Structure Refactoring: Why and How
    06:16
  • Lecture 38 : Mash up: TextView + EditText + Button
    12:58
  • Lecture 39 : Checkbox & RadioButton
    08:47
  • Lecture 40 : Mash up some more: with RadioButton
    04:14
  • Lecture 41 : ProgressBar
    07:19
  • Lecture 42 : Switch, ToggleButton and Recap
    01:19
Section 8 - Debugging Part 1
  • Lecture 43 : What is Android Debugging Bridge (ADB)
    01:37
  • Lecture 44 : Log
    09:43
  • Lecture 45 : Toast
    03:05
Section 9 - Dimension Units
  • Lecture 46 : The ugly of px
    01:49
  • Lecture 47 : dp and the dpi
    12:24
  • Lecture 48 : sp: The unit for text's size
    01:27
  • Lecture 49 : Usage & Magic of dp
    06:41
  • Lecture 50 : How to turn your design into dp unit?
    06:24
Section 10 - Resources System
  • Lecture 51 : What is Resources?
    03:54
  • Lecture 52 : Drawable
    05:10
  • Lecture 53 : The R Class
    04:16
  • Lecture 54 : Layout & ID
    02:36
  • Lecture 55 : Menu
    10:48
  • Lecture 56 : Values
    08:18
  • Lecture 57 : Anim, Animator and The Rest
    03:04
  • Lecture 58 : Configuration Qualifier
    13:58
  • Lecture 59 : Drawable and Configuration Qualifier
    05:22
  • Lecture 60 : Drawable Best Practices
    09:43
  • Lecture 61 : Layout Best Practices
    01:19
  • Lecture 62 : Say Hi to Context
    05:33
Section 11 - Views Part 2
  • Lecture 63 : ImageView
    11:04
  • Lecture 64 : ImageButton
    03:23
  • Lecture 65 : The 9-Patch
    18:55
  • Lecture 66 : Selector
    07:44
  • Lecture 67 : Make it scroll: ScrollView
    08:17
  • Lecture 68 : Homework: Welcome Screen
    03:57
  • Lecture 69 : Homework: Solution
    12:25
  • Lecture 70 : Custom View
    08:43
  • Lecture 71 : Custom Attribute
    09:01
  • Lecture 72 : Input Handling in Custom View
    14:11
  • Lecture 73 : Welcome to the world of 3rd Party Library
    04:50
  • Lecture 74 : Understand where those libraries are loaded from
    04:19
  • Lecture 75 : Speed up build time with Offline Mode
    02:41
  • Lecture 76 : Custom ViewGroup
    12:49
Section 12 - Advanced Layout Technique
  • Lecture 77 : <include> & <merge>
    06:24
  • Lecture 78 : Styles: The CSS for Android
    08:33
  • Lecture 79 : App Theming
    05:45
Section 13 - Activity
  • Lecture 80 : Introduction to Activity
    03:52
  • Lecture 81 : Intent and the Second Activity
    11:49
  • Lecture 82 : Sending an Object through Intent: Bundle, Serializable and Parcelable
    15:04
  • Lecture 83 : Understand how is Android App launched, introduction to Intent Filter
    05:44
  • Lecture 84 : Task and Back Stack
    14:01
  • Lecture 85 : Activity Lifecycle
    10:10
  • Lecture 86 : Activity's Instance State Saving/Restoring
    13:52
  • Lecture 87 : CustomView's State Saving/Restoring
    13:42
  • Lecture 88 : Custom ViewGroup's View Hierarchy State Saving/Restoring
    05:50
  • Lecture 89 : Activity's persistableMode
    03:31
  • Lecture 90 : How to terminate an Activity
    02:23
  • Lecture 91 : How to get result back from the launched Activity
    05:02
  • Lecture 92 : Work with Screen Orientation
    04:41
  • Lecture 93 : Soft Keyboard Mode
    07:23
  • Lecture 94 : Activity Transition
    07:06
  • Lecture 95 : Section Wrap Up
    04:35
Section 14 - MVC Code Structure
  • Lecture 96 : Structure your code with Model-View-Controller (MVC)
    06:12
  • Lecture 97 : Classify Java classes with package
    03:22
  • Lecture 98 : The Application
    05:25
  • Lecture 99 : Model as Singleton and the Contextor
    05:19
  • Lecture 100 : Here comes a library module: TheCheeseLibrary
    11:16
  • Lecture 101 : Application Context vs Activity Context
    07:35
Section 15 - Fragmentation
  • Lecture 102 : Hardware Fragmentation
    09:03
  • Lecture 103 : UX&UI for Mobile & Tablet
    02:14
  • Lecture 104 : Android OS Fragmentation
    02:18
  • Lecture 105 : Android Support Library
    17:32
  • Lecture 106 : Android Version If Condition
    01:40
  • Lecture 107 : Section Wrap Up
    01:13
Section 16 - Fragment
  • Lecture 108 : Story behind Fragment
    07:36
  • Lecture 109 : Fragment Usage: Replace & Backstack
    06:18
  • Lecture 110 : Creating your first Fragment & Understand Fragment Lifecycle
    08:46
  • Lecture 111 : Placing Fragment on an Activity
    09:43
  • Lecture 112 : Fix the argument problem with newInstance() pattern
    05:46
  • Lecture 113 : Access a Fragment from an Activity with findFragmentById & findFragmentByTag
    09:14
  • Lecture 114 : Fragment State Saving/Restoring
    03:59
  • Lecture 115 : The Second Fragment #1
    01:30
  • Lecture 116 : The Second Fragment #2
    06:47
  • Lecture 117 : FragmentTransaction's add() vs replace()
    04:32
  • Lecture 118 : Pop a Fragment from Backstack programmatically
    03:51
  • Lecture 119 : Fragment Transition
    08:11
  • Lecture 120 : FragmentTransaction's attach() and detach()
    07:56
  • Lecture 121 : When to separate part of the application into an Activity?
    03:25
  • Lecture 122 : Best Practices of Activity's and Fragment's state saving/restoring
    Article
Section 17 - Debugging Part 2
  • Lecture 123 : Step Debugging
    06:02
  • Lecture 124 : Crashlytics
    08:35
Section 18 - Develop a Real Application: Live @ 500px
  • Lecture 125 : Live @ 500px Application Overview
    02:25
  • Lecture 126 : Create a New Project and Structure with MVC
    15:36
  • Lecture 127 : Colorize the ActionBar: Material Design Color Pallette
    04:32
  • Lecture 128 : Drawer Menu & Hamburger Icon UX Overview
    06:31
  • Lecture 129 : Implement Drawer Menu
    12:05
  • Lecture 130 : Implement Hamburger Icon
    13:02
  • Lecture 131 : Goodbye ActionBar, Say Hi to Toolbar !
    11:10
  • Lecture 132 : Create a CustomViewGroup for Photo List Item #1
    03:34
  • Lecture 133 : Create a CustomViewGroup for Photo List Item #2
    02:32
  • Lecture 134 : Create a CustomViewGroup for Photo List Item #3
    06:59
  • Lecture 135 : Hola ListView
    09:58
  • Lecture 136 : Memory Consumption Alert: Make View Recycleable
    06:36
  • Lecture 137 : Deal with Multiple View Types inside ListView
    09:06
  • Lecture 138 : ViewHolder Pattern
    03:00
  • Lecture 139 : AdapterView
    01:43
  • Lecture 140 : Relation about Memory Consumption and Screen Resolution
    01:56
  • Lecture 141 : Fetching Data from Server with Retrofit 2.0 #1: Preparation
    01:07
  • Lecture 142 : Retrofit 2.0 #2: Introduction
    05:45
  • Lecture 143 : Retrofit 2.0 #3: Retrofit and Gson Converter
    10:25
  • Lecture 144 : Retrofit 2.0 #4: Create Data Access Objects (DAO)
    08:28
  • Lecture 145 : Retrofit 2.0 #5: Make a Call
    15:04
  • Lecture 146 : Context and Asynchronous Callback
    03:10
  • Lecture 147 : Show fetched data on ListView #1
    06:13
  • Lecture 148 : Show Fetched Data on ListView #2
    08:06
  • Lecture 149 : Glide: Make Image Loading easy
    10:28
  • Lecture 150 : Glide's Promising Features and Disk Caching Strategy
    08:49
  • Lecture 151 : Improve Server Side for Better Image Loading Performance
    02:12
  • Lecture 152 : Singleton Lifecycle
    09:41
  • Lecture 153 : Eliminate the Global Variable
    03:38
  • Lecture 154 : Add an Animation to ListView's Item
    09:01
  • Lecture 155 : View Animation Behind the Scene
    01:50
  • Lecture 156 : Implementing Pull to Refresh
    08:18
  • Lecture 157 : Modify Pull to Refresh for Better Performance #1
    17:19
  • Lecture 158 : Singleton Model vs Non-Singleton Model
    06:22
  • Lecture 159 : Modify Pull to Refresh for Better Performance #2
    09:31
  • Lecture 160 : Improve Pull to Refresh's UX: Maintaining ListView's Scroll Position
    08:23
  • Lecture 161 : Improve Pull to Refresh's UX: New Item Indicator
    19:59
  • Lecture 162 : Implementing Automatically Load More (Endless Scrolling)
    13:48
  • Lecture 163 : Improving Endless Scrolling UX
    05:09
  • Lecture 164 : Updating Android Support Library to the latest version
    11:00
  • Lecture 165 : Code Quality Improvement: Code Refactoring
    13:09
  • Lecture 166 : Handle MainFragment's Lifecycle #1
    12:58
  • Lecture 167 : Handle MainFragment's Lifecycle #2
    14:36
  • Lecture 168 : Handle MainFragment's Lifecycle #3
    11:37
  • Lecture 169 : Updating Library Module [TheCheeseLibrary]
    04:23
  • Lecture 170 : Persistant Storage #1: Internal Storage
    13:47
  • Lecture 171 : Persistant Storage #2: Data vs Cache
    06:32
  • Lecture 172 : Persistant Storage #3: SharedPreference
    07:43
  • Lecture 173 : Caching Downloaded Photo Data with SharedPreference
    11:11
  • Lecture 174 : ListView's Item Pressed State
    08:44
  • Lecture 175 : Handle ListView's Item Click Event
    11:58
  • Lecture 176 : Fragment-Activity Communication
    14:20
  • Lecture 177 : Up Button
    10:09
  • Lecture 178 : ViewPager #1: View Paging
    14:04
  • Lecture 179 : ViewPager #2: Fragment Paging Part 1
    02:30
  • Lecture 180 : ViewPager #3: Fragment Paging Part 2
    09:04
  • Lecture 181 : ViewPager & ViewPagerIndicator
    11:00
  • Lecture 182 : Passing Data to PhotoSummaryFragment
    09:40
  • Lecture 183 : Finish PhotoSummaryFragment
    06:29
  • Lecture 184 : Menu Part 2
    08:54
  • Lecture 185 : Menu Part 3: Put Menu in Fragment
    05:23
  • Lecture 186 : Bring Up Share Menu with ShareActionProvider
    04:23
  • Lecture 187 : How to Share Content to Another Application
    14:51
  • Lecture 188 : Make App be Tablet-Supported
    14:11
Section 19 - Threading
  • Lecture 189 : Why does Threading matter?
    06:46
  • Lecture 190 : Java Thread
    11:19
  • Lecture 191 : Looper & Handler
    08:28
  • Lecture 192 : Handler as a Timer
    03:35
  • Lecture 193 : Creating a HandlerThread
    08:55
  • Lecture 194 : AsyncTask
    18:34
  • Lecture 195 : Introduction to AsyncTaskLoader
    04:31
  • Lecture 196 : AsyncTaskLoader Part 1: Let it start
    19:27
  • Lecture 197 : AsyncTaskLoader Part 2: States
    04:56
  • Lecture 198 : AsyncTaskLoader Part 3: Stopped State
    14:09
  • Lecture 199 : AsyncTaskLoader Part 4: Handle Content Changed
    15:49
  • Lecture 200 : IntentService Part 1: Introduction to IntentService
    11:21
  • Lecture 201 : IntentService Part 2: Report Working Status Back with LocalBroadcastManager
    12:17
  • Lecture 202 : To be continued ...
    Article
Section 20 - FAQ
  • Lecture 203 : How to fix "Could not expand zip" compilation error.
    Article
Section 21 - [Special] Google I/O 2016
  • Preview Lecture 204 : สรุปงาน Google I/O 2016 ฉบับนักพัฒนา
    43:49

Reviews (159)


DTCENTERPRISE
เริ่มคอร์สด้วยปัญหาที่เจอ มันโอเคมากๆ
2017-01-09 17:36:19

Cs'Yothin Indy
FC ครับ
2017-01-07 15:27:37

Kathawut Kumpor
Very cool
2017-01-07 09:18:54

อิ๊ก ใบบัวบก
สอนเข้าใจง่ายดีครับ อธิบายทุกอย่างที่ควรจะรู้
2017-01-03 08:10:46

Chaiwat Ratchwat
He's dedicated to created this course and taught more fundamental this rate is appropriate for him, Thanks a lot.
2017-01-05 18:47:38

owenkung999
.
2017-01-04 15:46:56

Chonlavit Puangtang
สอนดีมากครับ
2017-01-04 04:18:39

Kataphol Pornsuksawang
เป็นการแนะนำที่ดี ใช้ภาษาที่เข้าใจง่าย ชวนให้อยากเรียนต่อไป
2017-01-02 17:01:35

Bodipat Asapan
เข้าใจง่ายมากๆ
2017-01-02 10:58:52

miixel2
Very good
2017-01-01 14:52:41