Firefox OS/AcademyNCU2016: Difference between revisions

 
(18 intermediate revisions by 4 users not shown)
Line 19: Line 19:
* '''Time''': 2-5pm every Monday.  
* '''Time''': 2-5pm every Monday.  
* '''Location''': Room 206 in Computer Science department building (工程五館).
* '''Location''': Room 206 in Computer Science department building (工程五館).
==Estimation Survey==
Students are expected to fill in an [https://docs.google.com/forms/d/1WBwQwP7W-4duh3O0LZaxguFVxWd7X_OeGPwlTymacno/viewform estimation survey] before enrolling this class. After students fill in this survey, speakers will review the submissions and provide suggestions to students to enroll this class or not.


==Working Environment==
==Working Environment==
Line 43: Line 46:
* [https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Flame Firefox OS Flame device](To be clarified. Need to be returned at the end of the class).
* [https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Flame Firefox OS Flame device](To be clarified. Need to be returned at the end of the class).
** Students need to sign agreements to make sure that these Flame devices will be returned at the end of this class.
** Students need to sign agreements to make sure that these Flame devices will be returned at the end of this class.
===Firefox OS device===
[[File:FlamesForNCU.JPG|thumbnail|right|Flashing builds on Flame]]
[[File:FlashingFlame.JPG|thumbnail|right|Flashing builds on Flame]]
* [https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Flame Flame device]
** The Flame device is the official reference device for developing, testing, and debugging Firefox OS and open web apps.
** Device Spec:
*** Qualcomm MSM8210 Snapdragon, 1.2GHZ Dual core processor
*** 4.5” screen (FWVGA 854×480 pixels)
*** Cameras: Rear: 5MP / Front: 2MP
*** 3G UMTS quad-band (850/900/1900/2100)
*** 8GB memory
*** 256MB -1GB RAM (adjustable by developer)
*** A-GPS, NFC
*** Dual SIM support
*** Battery capacity: 1,800 mAh
*** WiFi: 802.11 b/g/n, Bluetooth, Micro USB


==Rating Criteria==
==Rating Criteria==
Line 80: Line 66:


==Deliverable==
==Deliverable==
* Each student needs to submit a completed and workable Web app to Mozilla Marketplace.
* Each student needs to prepare a demo and shows to other students in this class.
* Each student needs to prepare a demo and shows to other students in this class.  


==Communication Channels==
==Communication Channels==
Line 88: Line 73:
** Channels: #b2g, #mozilla-taiwan, #Academy-NCU2016
** Channels: #b2g, #mozilla-taiwan, #Academy-NCU2016
* Mailing list:  
* Mailing list:  
** Discussion for this class: [mailto:fxos-ncu-2016@googlegroups.com fxos-ncu-2016@googlegroups.com]
** Discussion for this class: [https://groups.google.com/forum/#!forum/fxos-ncu-2016 Google Group]
** General discussions for Firefox OS: [https://lists.mozilla.org/listinfo/dev-fxos dev-fxos], [https://lists.mozilla.org/listinfo/dev-gaia dev-gaia]
** General discussions for Firefox OS: [https://lists.mozilla.org/listinfo/dev-fxos dev-fxos], [https://lists.mozilla.org/listinfo/dev-gaia dev-gaia]
** [https://lists.mozilla.org/listinfo/dev-general-zh Mozilla Community in Chinese language]
** [https://lists.mozilla.org/listinfo/dev-general-zh Mozilla Community in Chinese language]
Line 99: Line 84:
| 1 || 02/22 || '''Introduction'''<br>Overview of this class(rating criteria, major goals, projects). At the end of this session, we will also provide the basic instruction to use Github.<br>[http://slides.com/kevinhu-3/deck#/ Slides can be opened here]. || Kevin Hu || Register a Github account and create a repository and rename it via git commands.
| 1 || 02/22 || '''Introduction'''<br>Overview of this class(rating criteria, major goals, projects). At the end of this session, we will also provide the basic instruction to use Github.<br>[http://slides.com/kevinhu-3/deck#/ Slides can be opened here]. || Kevin Hu || Register a Github account and create a repository and rename it via git commands.
|-
|-
| 2 || 03/07 || '''Git, Github, Bugzilla, WebIDE and DevTools'''<br>Introduction of Git, Github, Bugzilla, WebIDE and DevTools. After this session, students are expected to have the skills to use some tools to develop Web Apps.<br>[https://docs.google.com/presentation/d/1QmmDpLy_kch8vnZQZyC8caybKF2A0zPxQsXHUCXIqRU/edit?usp=sharing Slides can be opened here.] || Ricky Chien<br>Kevin Hu || To create a Hello World app, and submit to your own Github repository.
| 2 || 03/07 || '''Introduce browser devtools, issue tracking and version control system'''<br>Introduction of Git, Github, Bugzilla and DevTools. After this session, students are expected to have the skills to use essential tools to develop website and collaborate with a team.<br>[https://docs.google.com/presentation/d/1QmmDpLy_kch8vnZQZyC8caybKF2A0zPxQsXHUCXIqRU/edit?usp=sharing Slides can be opened here.] || Ricky Chien<br>Kevin Hu || To create a Hello World app, and submit to your own Github repository.
|-
|-
| 3 || 03/14 || '''Git, Github, Bugzilla, WebIDE and DevTools'''<br>Introduction of Git, Github, Bugzilla, WebIDE and DevTools. After this session, students are expected to have the skills to use some tools to develop Web Apps.<br>[https://docs.google.com/presentation/d/1QmmDpLy_kch8vnZQZyC8caybKF2A0zPxQsXHUCXIqRU/edit?usp=sharing Slides can be opened here.] || Ricky Chien<br>Kevin Hu || To create a Hello World app, and submit to your own Github repository.
| 3 || 03/14 || '''Introduce browser devtools, issue tracking and version control system (continue)'''<br>Introduction of Git, Github, Bugzilla and DevTools. After this session, students are expected to have the skills to use essential tools to develop website and collaborate with a team.<br>[https://docs.google.com/presentation/d/1QmmDpLy_kch8vnZQZyC8caybKF2A0zPxQsXHUCXIqRU/edit?usp=sharing Slides can be opened here.] || Ricky Chien<br>Kevin Hu || Collaborate as team to work on a Github project together and solve a git conflict issue.
|-
|-
| 4 || 03/21 || '''Introduction of animation, web component and Firefox OS TV'''<br>Introduction of animation technology, web component and technology in Firefox OS TV device. <br>[http://begeeben.github.io/animation-presentation/ Slides can be opened here.] || Yifan Liao<br>Kevin Hu || None.
| 4 || 03/21 || '''Introduction of animation and web component'''<br>Introduction of animation technology and web component. <br>[http://begeeben.github.io/animation-presentation/ Slides can be opened here.] || Yifan Liao<br>Kevin Hu || None.
|-
|-
| 5 || 03/28 || '''JavaScript Best Practice (1)'''<br>Some examples will be used in this session. After this session, students are expected to learn JavaScript best practice, and the skills to refactor JavaScript codes.<br>[https://docs.google.com/presentation/d/1ofgD63SENpiihJ_MIYyZVW2TM11Mo-qwcstDbZytqIo/edit#slide=id.p Slides can be opened here.] || Greg Weng<br>Kevin Hu || Codes refactoring.  
| 5 || 03/28 || '''JavaScript Best Practice (1)'''<br>Some examples will be used in this session. After this session, students are expected to learn JavaScript best practice, and the skills to refactor JavaScript codes.<br>[https://docs.google.com/presentation/d/1ofgD63SENpiihJ_MIYyZVW2TM11Mo-qwcstDbZytqIo/edit#slide=id.p Slides can be opened here.] || Greg Weng<br>Kevin Hu || Codes refactoring.  
|-
|-
| 6 || 04/11 || '''JavaScript Best Practice (2)'''<br>Some examples will be used in this session. After this session, students are expected to learn JavaScript best practice, and the skills to refactor JavaScript codes.<br>[https://docs.google.com/presentation/d/15bkiDc8egvAiaapaqk_yvrcFo2jQJTGFipBRCqhP_yg/edit#slide=id.p Slides can be opened here.] || Greg Weng<br>Kevin Hu || Codes refactoring. Start to provide the draft of proposed project.
| 6 || 04/11 || '''JavaScript Best Practice (2)'''<br>Some examples will be used in this session. After this session, students are expected to learn JavaScript best practice, and the skills to refactor JavaScript codes.<br>[https://github.com/snowmantw/ncu-es-materials-2016 Slides can be opened here.] || Greg Weng<br>Kevin Hu || Codes refactoring. Start to provide the draft of proposed project.
|-
|-
| 7 || 04/18 || '''JavaScript Best Practice (3) and Add-ons'''<br>(language itself, some ES6 stuff), DevTools, DOM access, CSS performance, AddOn.|| Wei-Cheng Pan<br>Kevin Hu ||  
| 7 || 04/18 || '''JavaScript Best Practice (3)'''<br>Something new in ES6/ES7, that already used in Mozilla's codebase.<br>[https://legnaleurc.github.io/slide_ncu_2016 Slides can be opened here.]|| Wei-Cheng Pan<br>Kevin Hu ||  
|-
|-
| 8 || 04/25 || '''Business Model Canvas'''<br>Overview of business model and how it works. || Charles Chen<br>Kevin Hu ||  
| 8 || 04/25 || '''Business Model Canvas and animation'''<br>Overview of business model and how it works. Keynotes of animation.<br>[https://drive.google.com/open?id=0B1cxDHuuke17N0RaY3drTDQ2eFU Slides can be opened here:UX-UI-Animation(keynote).]<br>[https://drive.google.com/open?id=0B1cxDHuuke17ZUY4blVNcjhSaWM Slides can be opened here:UX-UI-Animation(pdf).] || Charles Chen<br>Morpheus Chen ||  
|-
|-
| 9 || 05/02 || '''Responsive Web Design''' || Joseph Yeh<br>Kevin Hu || None.
| 9 || 05/02 || '''Responsive Web Design''' || Joseph Yeh || None.
|-
|-
| 10 || 05/09 || '''Introduction of client-server model and development tools''' || Ray Lin<br>Kevin Hu || None.
| 10 || 05/09 || '''Introduction of client-server model and development tools''' || Ray Lin<br>Kevin Hu || None.
|-
|-
| 11 || 05/16 || '''HTML5 Gaming, Canvas API''' || Scott Wu<br>Kevin Hu
| 11 || 05/16 || '''HTML5 Gaming, Canvas API'''<br>[https://docs.google.com/presentation/d/1g-uBKx5ftfW-MkMdo_P0oaeYTfvA6n-BfVS1L1n3q7w/edit#slide=id.g1402696e37_0_172 Slides can be opened here.] || Scott Wu<br>Kevin Hu
|-
|-
| 12 || 05/23 || '''Mozilla Taipei Visit (Dates: TBC)'''<br>Students will come to visit Mozilla Taipei office. Will provide basic introduction about Mozilla. <br>[https://docs.google.com/presentation/d/1VQPMShcMP30PgbY9QZXTgIQO3rPzjZegB8-kaGfg9C0/edit?usp=sharing Slides can be opened here.]<br>Office Location: [https://www.google.com.tw/maps/place/No.+106,+Section+5,+Xinyi+Rd,+Xinyi+District,+Taipei+City,+110/@25.0327429,121.5646424,17z/data=!3m1!4b1!4m2!3m1!1s0x3442abb11481f283:0x24d463b1d3e86041 台北市信義區信義路五段106號4樓A1]<br>Agenda:  
| 12 || 05/23 || '''Mozilla Taipei Visit (Dates: TBC)'''<br>Students will come to visit Mozilla Taipei office. Will provide basic introduction about Mozilla. <br>[https://docs.google.com/presentation/d/1VQPMShcMP30PgbY9QZXTgIQO3rPzjZegB8-kaGfg9C0/edit?usp=sharing Slides can be opened here.]<br>Office Location: [https://www.google.com.tw/maps/place/No.+106,+Section+5,+Xinyi+Rd,+Xinyi+District,+Taipei+City,+110/@25.0327429,121.5646424,17z/data=!3m1!4b1!4m2!3m1!1s0x3442abb11481f283:0x24d463b1d3e86041 台北市信義區信義路五段106號4樓A1]<br>Agenda:  
Line 145: Line 130:
|-
|-
| [[File:ricky.jpg|50px|thumbnail|center]]'''Ricky Chien''' || Firefox OS Software Engineer || rickychien || [https://github.com/rickychien/ rickychien] || Work on Firefox OS Gaia.
| [[File:ricky.jpg|50px|thumbnail|center]]'''Ricky Chien''' || Firefox OS Software Engineer || rickychien || [https://github.com/rickychien/ rickychien] || Work on Firefox OS Gaia.
|-
| [[File:bchao.jpg|50px|thumbnail|center]]'''Bob Chao''' || [https://reps.mozilla.org/u/bobchao Mozilla Rep] / MozTW Community || bobchao || [https://github.com/bobchao bobchao] || All about community (both paid / non-paid staff)
|-
|-
| [[File:yliao.jpg|50px|thumbnail|center]]'''Yi-Fan Liao''' || Firefox OS Software Engineer || yliao || bebeeben || system browser, vertical home screen, and bookmark in Firefox OS.  
| [[File:yliao.jpg|50px|thumbnail|center]]'''Yi-Fan Liao''' || Firefox OS Software Engineer || yliao || bebeeben || system browser, vertical home screen, and bookmark in Firefox OS.  
Line 169: Line 152:
==Reference==
==Reference==
* [https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript A re-introduction to JavaScript (JS tutorial)]
* [https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript A re-introduction to JavaScript (JS tutorial)]
* [https://marketplace.firefox.com/ Mozilla Marketplace]
* Firefox OS apps:
** [https://developer.mozilla.org/en/Marketplace/Options/Hosted_apps Hosted apps]
** [https://developer.mozilla.org/en-US/Marketplace/Options/Packaged_apps Packaged apps]
** [https://developer.mozilla.org/en-US/Marketplace/Options/Packaged_or_hosted Packaged apps or hosted apps?]
* [https://developer.mozilla.org/en-US/Apps/Build/Building_apps_for_Firefox_OS Building apps for Firefox OS]
* [https://classroom.github.com/classrooms Classrooms for Github]

Latest revision as of 06:31, 17 May 2016

Academy Program in National Central University 2016

Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity, as is the inherent support for cross-platform compatibility.

 
NCU

Firefox OS is an open source mobile operating system build entirely using Web technologies. Having launched into market on smartphones built by leading handset manufacturers, Firefox OS is seeing rapid expansion into further markets. By making the Web a first class citizen on mobile, Firefox OS seeks to tear down closed ecosystem barriers and promote an open mobile Web.

 
Photo taken during the class

As an open source project, Firefox OS is built by a community of employees, partners and contributors. Mozilla enthusiastically encourages students from the academy to contribute to Firefox OS. Mozilla works with National Central University in Taiwan and creates a semester class in 2015. In that class, Mozilla deploys required knowledge and skills to students, to implement web based apps. In the end of the class, there are totally 53 web apps implemented by students, and parts of them are submitted to Mozilla Firefox Marketplace. At the end of this class, the computer science department in National Central University hosted an exhibition to demo some of these apps.

After we finished the successful class in 2015, Kevin Hu talked with the chairwoman in computer science department in National Central University, and we are going to open another semester class in 2016. This class will focus on the implementation of Web Apps and Add-ons, including programming best practice, API basics, and some workshops that allow students to experience the whole process to implement Web Apps. In the end of the class, finished and completed Web Apps are expected. To submit these apps to Mozilla Marketplace is even better.

Basic Information of the Class

 
NCU CSIE
  • National Central University, Taiwan
  • Computer Science and Information Engineering Department
  • Name of the Class: Web Technologies and Practice (Web技術與實作)
  • Number of Students: ~25
  • Required Skills: Basic JavaScript programming
  • Time: 2-5pm every Monday.
  • Location: Room 206 in Computer Science department building (工程五館).

Estimation Survey

Students are expected to fill in an estimation survey before enrolling this class. After students fill in this survey, speakers will review the submissions and provide suggestions to students to enroll this class or not.

Working Environment

 
Firefox OS

Operating System

Tools

Before development

  • Running your own Gaia build:
    • First, make a fork of the main Gaia repo on Github.
    • Clone your fork locally: git clone https://github.com/your-username/gaia.git
    • Go to 'gaia' folder and add upstream: git remote add upstream https://github.com/mozilla-b2g/gaia
    • Now you need to create a Gaia profile. Running make inside your repo folder creates a profile in the profile directory, which is setup for optimal debugging. It creates unpackaged (hosted versions) of the Gaia apps that can be served directly via the local HTTPD server bundled along with Firefox desktop as an extension. When you make a change you just need to refresh your browser window to see the result (as you'll see later), rather than having to rebuild the profile, repush it to the device, etc. This is really good for rapid CSS/JS/HTML hacking.
    • With your debug profile built, run it in Mulet or WebIDE.

Testing environment

Rating Criteria

  • Rating Criteria:
Type Percentage Detailed description
Project 60% * Votes from Demo: 25%
** In the 25% for demo, each student, teacher assistant and speaker has votes to choose the projects that are done by others.
* Code quality: 20%
* Creativity: 15%
Homework 30% Based on the completion and quality of assignment after sessions. Will be reviewed and assigned by teacher assistants and speakers.
Attendance 10% Based on how students are involved in the class [1].
  • Button line: (Students who don't meet one of the following conditions may have a fail in this class.)
    • The project should not be copied from others.
    • Students are expected to finish the project by the end of this class. Date is to be clarified.
    • [1] Should not have absence for more than 2 sessions.
  • To quit in the middle of the class is not allowed. Please make sure you understand the criteria and decide to enroll this class or not before the end of the 2nd session.

Deliverable

  • Each student needs to prepare a demo and shows to other students in this class.

Communication Channels

Agenda

# Date Topic Speaker / Owner Homework
1 02/22 Introduction
Overview of this class(rating criteria, major goals, projects). At the end of this session, we will also provide the basic instruction to use Github.
Slides can be opened here.
Kevin Hu Register a Github account and create a repository and rename it via git commands.
2 03/07 Introduce browser devtools, issue tracking and version control system
Introduction of Git, Github, Bugzilla and DevTools. After this session, students are expected to have the skills to use essential tools to develop website and collaborate with a team.
Slides can be opened here.
Ricky Chien
Kevin Hu
To create a Hello World app, and submit to your own Github repository.
3 03/14 Introduce browser devtools, issue tracking and version control system (continue)
Introduction of Git, Github, Bugzilla and DevTools. After this session, students are expected to have the skills to use essential tools to develop website and collaborate with a team.
Slides can be opened here.
Ricky Chien
Kevin Hu
Collaborate as team to work on a Github project together and solve a git conflict issue.
4 03/21 Introduction of animation and web component
Introduction of animation technology and web component.
Slides can be opened here.
Yifan Liao
Kevin Hu
None.
5 03/28 JavaScript Best Practice (1)
Some examples will be used in this session. After this session, students are expected to learn JavaScript best practice, and the skills to refactor JavaScript codes.
Slides can be opened here.
Greg Weng
Kevin Hu
Codes refactoring.
6 04/11 JavaScript Best Practice (2)
Some examples will be used in this session. After this session, students are expected to learn JavaScript best practice, and the skills to refactor JavaScript codes.
Slides can be opened here.
Greg Weng
Kevin Hu
Codes refactoring. Start to provide the draft of proposed project.
7 04/18 JavaScript Best Practice (3)
Something new in ES6/ES7, that already used in Mozilla's codebase.
Slides can be opened here.
Wei-Cheng Pan
Kevin Hu
8 04/25 Business Model Canvas and animation
Overview of business model and how it works. Keynotes of animation.
Slides can be opened here:UX-UI-Animation(keynote).
Slides can be opened here:UX-UI-Animation(pdf).
Charles Chen
Morpheus Chen
9 05/02 Responsive Web Design Joseph Yeh None.
10 05/09 Introduction of client-server model and development tools Ray Lin
Kevin Hu
None.
11 05/16 HTML5 Gaming, Canvas API
Slides can be opened here.
Scott Wu
Kevin Hu
12 05/23 Mozilla Taipei Visit (Dates: TBC)
Students will come to visit Mozilla Taipei office. Will provide basic introduction about Mozilla.
Slides can be opened here.
Office Location: 台北市信義區信義路五段106號4樓A1
Agenda:
  1. Video sharing, 2 mins.
  2. Introduction of the session today, 3 mins.
  3. Introduction of Mozilla, 17 mins.
  4. Visit Mozilla Taipei Space, 10 mins.
  5. Q&A and/or Sharing from old schoolmates who are working at Mozilla now, 30~ mins.
  6. Suggest to visit Mozilla Taipei Community Space.
  7. Delivery of Flame devices.
Kevin Hu None.
13 05/30 Project Demo TAs
14 06/06 Project Demo TAs

Mentors / Session Owner

Speaker Responsibility IRC Github Detailed work on items
Kevin Hu Management of Engineering Community Development, the organizer of this class khu kaichih LinkedIn: https://www.linkedin.com/in/kaichih
Telegram: kaichih
Skype: kaichih.hu
Greg Weng Firefox OS Software Engineer snowmantw snowmantw Lockscreen, and NFC visual effects in Firefox OS.
Ricky Chien Firefox OS Software Engineer rickychien rickychien Work on Firefox OS Gaia.
Yi-Fan Liao Firefox OS Software Engineer yliao bebeeben system browser, vertical home screen, and bookmark in Firefox OS.
Joseph Yeh Firefox OS Software Engineer joseph
Charles Chen Senior Business Development Manager Building Relationship and Developing Business with various Partners to explore opportinuty for Firefox OS in Connected Device Area.
Wei-Cheng Pan Firefox OS Software Engineer wcpan legnaleurc Firefox OS Performance.
Scott Wu Firefox OS Software Engineer Firefox OS Front End Developer.
Ray Lin Firefox OS Software Engineer rylin raylin Web developer.

Teaching Assistants

  • 鍾智鈞
    • Github: chungya
  • 蔡宗明

Reference