You are on page 1of 10

SILABUS

SEKOLAH
MOBILE

Copyright :
Sekolah Mobile - www.sekolahmobile.com
PT. Cilsy Fiolution Indonesia - www.cilsyfiolution.com

Siapapun dilarang untuk menggunakan, mengkopi, menyebarluaskan, menjual


sebagian atau seluruh isi dokumen ini tanpa seizin pemilik yaitu PT.
Cilsy Fiolution Indonesia. Konten Silabus ini adalah hak cipta dari PT.
Cilsy Fiolution Indonesia dan dilindungi oleh Undang-Undang.
Sekolah Mobile - Student Requirements
Android Developer, Mobile Developer

Date : 2021

Based on :

After graduate from bootcamp, Student should be able to do these jobs :


Code Job Description
JD1 Design and build applications for the Android platform
JD2 Ensure the performance, quality, and responsiveness of applications
JD3 Collaborate with a team to define, design and ship new features
JD4 Identify and correct bottlenecks and fix bugs
JD5 Help maintain code quality, organization and automatization

And student should have these qualifications :


Code Qualifications
Q1 Proficient understanding of code versioning tools (Git / SVN)
Q2 Familiarity with REST, JSON,SQlite
Q3 Familiarity with cloud message APIs and push notifications
Q4 Knowledge of other web technologies and UI/UX standards
Familiarity with RESTful APIs to connect Android applications to back-end
Q5 services
Q6 Comfortable working with agile methodology and tools
Q7 A team player who is effective working independently and collaboratively
Q8 Responsible for developing applications, unit testing and bug fixes
Deep understanding of Android UI frameworks applications design, and
Q9 complex, reactive touch-based UIs
Q10 Proficient in GUI programming and multi threaded applications
Q11 You have an In-depth understanding of Flutter

Q12 You have experience writing multi-threaded asynchronous code


Q13 Good sense of UI design and a keen focus on the user experience
Q14 Working knowledge of Clean Architecture is a plus
Untuk mencapai seluruh requirement diatas, maka silabus yang akan Anda pelajari adalah
sebagai berikut :

Judul Course 1 : Hello Flutter!


Disini peserta akan mulai melakukan setup environment belajar, mempelajari bagaimana Flutter
bekerja, dan fokus ke basic pemrograman menggunakan Dart yang merupakan bahasa yang
digunakan pada Flutter.

Week 1
Section 1 : Why Mobile Development?
● Materi : Masalah yang dipecahkan oleh Mobile Developer
● Materi : Gambaran pekerjaan seorang Mobile Developer
● Materi : Peluang Karir Mobile Developer
● Materi : Apa saja yang harus dimiliki untuk menjadi seorang Mobile
Developer

Section 2 : How to be a Good Engineer


● Materi : Bad Engineer vs Good Engineer
● Materi : Cara googling yang baik
● Materi : Cara belajar yang baik
● Materi : Cara bertanya dan menjawab pertanyaan dengan baik
● Materi : Attitude yang harus dimiliki oleh seorang good engineer
● Materi : Sebaiknya bisa menulis & membaca bahasa inggris
● Materi : Have a dream!
● Tugas : Speaking Drill

Section 3 : Flutter Introduction


● Materi : What is Flutter?
● Materi : What is Native developer?
● Materi : Siapa yang menggunakan Flutter?
● Materi : Apa itu Dart Language?
● Materi : Kelebihan Dart dibandingkan bahasa lain
● Materi : Apa itu Hot Reload?
● Materi : Instalasi Flutter di Windows
● Materi : Instalasi Flutter di Linux
● Materi : Instalasi Flutter di iOS
● Materi : Install Android Studio
● Materi : Configure virtual devices
● Materi : Install VSCode
● Materi : Install Flutter extension / Plugin
● Materi : Hello Flutter!

Section 4 : Dart Introduction


● Materi : Dart Introduction
● Materi : Dart Characteristic
● Materi : Dart syntax
● Materi : Membuat Hello World App
● Materi : Execute Dart program
● Materi : Identifier pada Dart
● Materi : Keywords pada Dart
● Materi : Comments pada Dart
● Materi : Variables pada Dart
● Materi : Data types pada Dart
● Challenge : Variables, Comments, & Data types
● Materi : String & Runes

Section 5 : Operation and Priorities


● Materi : Why we need to learn this section
● Materi : Arithmetic operators
● Materi : Equality and Relational Operators
● Materi : Type test operators
● Materi : Bitwise Operators
● Materi : Assignment Operators
● Materi : Logical operators
● Exercise: Converting Time (Year to Day, Day to Year, Month to Seconds,
etc.)
● Materi : Nullability in Dart

Week 2
Section 6 : Decision Making
● Materi : Logic statement
● Materi : Simple IF
● Materi : IF-Else
● Materi : Nested IF
● Materi : Switch Case
● Exercise: Is number even or odd ?

Section 7 : Loop Control


● Materi : Simple For Loop
● Materi : While and Do-While Loop
● Materi : Nested Loops and Condition
● Materi : Enums & Switch
● Materi : Returns and Jumps
● Exercise : Find even numbers between 1-100 output 2 4 6 8 10 …

Section 8 : Collections
● Materi : List
● Materi : Operating on a List
● Materi : Set
● Materi : Map

Section 9 : Function
● Materi : What is function?
● Materi : Defining a function
● Materi : Calling a Function
● Materi : Returning Function
● Materi : Anonymous Function & Closures
● Materi : Parameterized Function
● Materi : Recursive Dart Functions
● Materi : Lambda Functions

Week 3

Section 10 : OOP & Design Pattern


● Materi : What is OOP
● Materi : Inheritance
● Materi : Encapsulation
● Materi : Simple Class
● Materi : Properties & Methods
● Materi : Constructor
● Materi : Inheritance
● Materi : Static Members
● Materi : Implicit interface
● Materi : Enumerated types
● Materi : Mixins
● Materi : Extension Methods
● Materi : Abstract Classes & Interfaces

Small Project 1
Pada bagian ini, peserta akan diberikan sebuah file .dart dan diminta memperbaiki fungsi yang
ada di dalam file tersebut sehingga sesuai dengan fungsi yang diinginkan.

Judul Course 2 : Deep Dive into Flutter Fundamental


Setelah mengenal bahasa pemrograman Dart, peserta diajak untuk mengimplementasikan
penggunaan bahasa Dart di Flutter. Pada course ini, akan dibahas dasar dasar penggunaan
Flutter pada mobile development, hingga membuat aplikasi sederhana.

Week 5
Section 13 : Pengenalan Widget
● Materi : StatelessWidget
● Materi : StatefulWidget
● Materi : Common Widget
● Materi : Scaffold
● Materi : Container
● Materi : Container - Decoration
● Materi : Padding
● Materi : Center
● Materi : Row and Column
● Materi : Button
● Materi : Input Widget
● Materi : Image
● Materi : Font
● Materi : Expanded
● Materi : Navigation
● Materi : ListView

Section 14 : Deployment
● Materi : Build APK
● Materi : Build IPA
● Materi: Submission

SMALL PROJECT 2
Pada project ini, peserta diminta membuat tampilan UI sederhana menggunakan Flutter
berdasarkan file .dart yang diberikan pada small project sebelumnya.

Week 7-8
Section 17 : Flutter Advanced
● Materi : Flutter Anatomy
● Materi : Flutter Lifecycle
● Materi : Navigation & Routing
● Materi : Study case

Section 18 : Designing UI with Widgets


● Materi : Layout Constraints
● Materi : Material Design Component
● Materi : Themes
● Materi : Typography
● Materi : Gesture Detection
● Materi : Custom Widget
● Materi : Animations
● Materi : Slivers
● Materi : SliverList
● Materi : SliverGrid
● Materi : Cupertino
● Materi : Flutter DevTools

Section 19 : State Management


● Materi : Declarative UI
● Materi : State Management Approach

Week 9-11

Section 20 : HTTP Call


● Materi : JSON Parsing
● Materi : Future
● Materi : FutureBuilder
● Materi : HTTP Package
● Study case: Membuat aplikasi Covid-19 Tracker yang terhubung ke
openAPI

Section 21 : Scheduling
● Materi : Notification
● Materi : Background Process

Section 22 : Working with Local Storage


● Materi : Shared Preferences
● Materi : Local Database with SQLite
● Materi : Read and Write File

Section 23 : Testing
● Materi : Unit Testing
● Materi : Widget Testing
● Materi : Integration Testing

Week 12-13
Section 24 : Study Case 1 - Aplikasi E-Commerce
● Materi : Setup Flutter Environment
● Materi : Initial project
● Materi : Create project structure
● Materi : Add state management
● Materi : Add Product list
● Materi : Add Product Search
● Materi : Add Customer info
● Materi : Add date picker
● Materi : Add purchase
● Materi : Integrate with another API

Section 25 : Study Case 1 - Aplikasi Delivery


● Materi : Setup Flutter Environment
● Materi : Initial project
● Materi : Create project structure
● Materi : Add state management
● Materi : Integrate with Map API
Judul Course 4 : Collaboration time!
Semua course sebelumnya hanya fokus pada Mobile Developer yang bekerja sendirian. Di
Course ini akan diajak bagaimana seorang Mobile Developer berkolaborasi dalam tim,
khususnya dengan sesama Android Developer lain dan Backend Developer. Dimana ini
benar-benar real case dalam dunia nyata.

Week 14
Section 26 : Understanding Developer role in Scrum
● Materi : Pengenalan Agile & Scrum bagi Developer
● Materi : Why Agile & Scrum bagi Developer?
● Materi : Skill & Mindset Scrum & Agile bagi Developer
● Materi : Simulasi-simulasi Scrum bagi Developer
● Materi : Pengenalan Trello sebagai tools kolaborasi
● Latihan : Demo menggunakan Trello
● Latihan : Melakukan simulasi 1 sprint Scrum sebagai Programmer
● Latihan : Lanjutan simulasi 1 sprint Scrum sebagai Programmer & Fail

Section 27 : Understanding Git & Flow Development (GitHub)


● Materi : Mengenal Git & Kenapa wajib paham Git, kenapa pentingnya
kolaborasi dengan sesama Programmer
● Materi : Command & Konsep dasar Git
● Materi : git clone, git add, git commit, git push
● Materi : git status, commit message yang baik
● Materi : Hands on untuk membuat aplikasi hello world dan push ke github
● Materi : git reset -> --soft, --hard
● Materi : Hands on untuk menerapkan reset ke aplikasi hello world
● Materi : git pull
● Materi : Hands on membuat aplikasi hello nama di branch yang baru
● Materi : skill branching -> add, delete, stash
● Materi : merge branch to branch master
● Materi : stash dan fix conflict ketika di pull dari branch yang lainnya
● Materi : Flow development di dalam sebuah tim
● Materi : Mengenal Local - Staging - Production
● Tugas : Melakukan git merge & forking antara local, staging, production
● Latihan : Push project Android Book Store ke GitHub
Week 15-16
Big Project
Pada big project, siswa diminta membuat sebuah tampilan UI yang didapat dari tim
UI/UX designer, dan nantinya terhubung ke REST API yang disediakan oleh tim Backend.
Siswa juga diminta membuat sebuah simulasi sprint sehingga koordinasi dengan tim lainnya
lebih terarah dan rapi.

You might also like