Friday, July 26, 2019

Understanding dependencies: and dev_dependencies: in Flutter

If you develop in Flutter, you might remember seeing the dependencies: and dev_dependencies: sections in the pubspec.yaml file. Here is how they work.

Monday, May 13, 2019

Courses in June 2019

Learn Cross Platform Mobile Apps Development

There are a couple of frameworks available for developing cross-platform mobile apps - apps that run on iOS and Android with a single code base. In the month of June, we have the following courses available:




To make it easier to test your applications on the Android platform (for iOS you can use the Simulator), both courses come with an AndroidOne device. At the end of the training, you will be able to bring the device back home.


Programming Internet of Things (IoT)

In the month of June we will run three different IoT courses:





We have added new modules and lab exercises to all these courses. In particular, we are covering:

  • Fingerprint scanning in IOT101 and IOT104
  • Using Blynk and ThingSpeak in IOT101
  • Touchscreen in IOT101
  • Controlling relays using ESP-01 in IOT104


Blockchain and Smart Contract Programming

Blockchain technology is in high demand in the year 2019. Talk about Blockchain and people start to associate it with Bitcoin. But Blockchain is more than just cryptocurrencies. In particular, a programmable Blockchain like Ethereum is more useful. We have a course in June that shows you how to program the Ethereum blockchain and create your smart contract. Using Smart contract, you can build applications that:

  • require decentralised trust (such as OpenCerts)
  • automate the transfer of crypto-assets automatically
  • automate transactions and eliminate costly third party agents

The Blockchain course in June:





Programming Courses

The recent Stackoverflow Developer Survey 2019 reveals that Python has “edged out Java” and is the second most loved language. Stack Overflow refers to Python as the “fastest-growing major programming language”.

Python is used for many different tasks - automation, desktop and web, scientific, as well as artificial intelligence. If you have not started programming Python, now is a good time!



Node.js is an open source, cross-platform runtime environment for creating Web apps and Web services. Node.js apps are written using JavaScript, and it provides an event-driven architecture and a non-blocking I/O API that enhances an application’s throughput and scalability.

In our Node.js course, you will learn how to:

  • Write REST APIs
  • Use nvm to install different versions of Node.js
  • Use npm to manage your packages
  • Use npm to publish your own modules and libraries to the Node.js repository 

Here is the run in June:





Saturday, April 27, 2019

Introduction to Coding using the micro:bit (for kids 7 to 13)

Want to get your child started in programming? In this one day code camp, your child can learn how to get started with programming using the micro:bit. 

This course comes with a micro:bit and a couple of sensors, and it is the perfect way to get them interested in programming. 

Instead of learning programming through theory, your child will learn programming through doing. 

Date: 15 June 2019 (Saturday)
Time: 9am to 5pm
Lunch provided
Course Fee: S$395

Details at: http://bit.ly/2IL7gyL

Wednesday, April 24, 2019

Course highlights

Inline image 1
25 April 2019



Learn how to program using the Python programming language. Besides learning the language, you will also learn how to use Python for:
  • Programming REST services
  • Sockets Programming
  • Database programming
  • Screen Scraping
  • Plotting Charts
  • Sending Push Notifications
  • And more

Learn how to develop cross-platform mobile app using Google's Flutter framework. You will learn:
  • The Dart Programming Language
  • Fundamental building blocks of developing cross-platform iOS and Android apps using the Flutter Framework

The MOB107 course comes with the Mi A2 lite for development and testing. 


Learn how to develop native Android apps using the Java Programming language. You will learn:
  • Getting started with Android Programming
  • Activities and Intents
  • Broadcasts and Broadcast Receivers
  • Handling Permissions in Android
  • Sending and Receiving SMS messages
  • Network Programming

The AND101 course comes with the Mi A2 lite for development and testing.


Learn how to develop native Android apps using the new Kotlin Programming language. You will learn:
  • Getting started with Android Programming
  • Activities and Intents
  • Broadcasts and Broadcast Receivers
  • Handling Permissions in Android
  • Sending and Receiving SMS messages
  • Network Programming

The AND102 course comes with the Mi A2 lite for development and testing. 


Learn how to recognise images, handwritten notes, and more using the Computer Vision API from the Microsoft Cognitive Services. You will learn:
  • How to use the Vision API
  • How to use the Face API
  • Write applications in iOS, Android, Python, and Node.JS to integrate Cognitive Services into your application


Get started with Node.js and learn how to manage your Node.js installations using nvm and publish your modules to npmjs.com. You will learn:
  • How to use nvm to install different versions of Node.js
  • How to use npm to install Node packages
  • How to upload your own npm packages
  • How to access MySQL databases using Node.js
  • How to create a REST API using Node.js
  • How to create a online chat application using Node.js



The IOT101 on 20-21 June 2019 is now confirmed! Learn how to connect the Raspberry Pi 3B+ to the various accessories and sensors and send data to the cloud. 

NEW! Now includes:
  • Fingerprint Scanner
  • 3.5 inch touch screen 


For the upcoming IOT104 Arduino programming course, we will be using the ESP32 LoRa OLED development board. In addition, we will also be providing a number of Arduino boards, including the ESP8266 and ESP-01. 

NEW! Now includes:
  • Fingerprint Scanner
  • ESP-01
  • Relay


Learn how to program The BBC micro:bit using the MicroPython Programming language. Course includes an IoT kit including the micro:bit and a bunch of accessories.





Learn how Blockchain works and how to develop Smart Contacts using the solidity programming language. 

Tuesday, April 23, 2019

Python Machine Learning - Wiley

What could be more exciting than receiving the advance copies of the book that you spent 6 months writing? #PythonMachineLearning


Tuesday, April 02, 2019

Dart Cheat Sheet

Learning a new framework is a daunting task. And it is totally nightmarish if a new language is used. Such is the case for learning Flutter, where the language used is Dart. To ease your Flutter learning curve, I have prepared the Dart Cheat Sheet so that you can focus on the Flutter framework, rather on the language syntax. 


Check it out here - http://bit.ly/2uCSLE3.


Friday, March 29, 2019

Kotlin Cheat Sheet

I have just updated the Kotlin Cheat Sheet. It is now 4 pages long! Includes the language basics as well as topics on OOP, Extension methods, Lambda functions and more. 
Check it out at: http://bit.ly/2OtHNty

Friday, February 01, 2019

Conducted a workshop on Python Machine Learning

My class participants from Itema AS at the end of a very fun workshop on Python Machine Learning. Kristiansund, Norway, Jan 2019. 

Thursday, January 10, 2019

IOT107 - IoT Programming using the micro:bit

IOT107 - IoT Programming using the micro:bit. Course comes with the IoT Kit containing modules like OLED display, dot matrix display, LCD, and more. Details at http://calendar.learn2develop.net/.

Wednesday, January 09, 2019

IOT101 - IOT using Raspberry Pi

IOT101 - Learn how to connect all the various sensors and accessories to the Raspberry Pi and send data to the cloud. Includes coverage of LoRaWan module! Course includes the IOT Kit. Details at http://calendar.learn2develop.net/.

Tuesday, January 08, 2019

Article - Implementing Push Notifications in Progressive Web Apps (PWAs) Using Firebase

Progressive Web Apps (PWAs) are Web applications that behave like native mobile applications. PWAs leverage Google technology to deliver an extremely engaging mobile experience. PWAs live within the Web browser and have the ability to work even if the device is offline. At the same time, PWAs exhibit the behavior that you’ve come to expect from native mobile apps: They support background content updating, push notifications, and more. More importantly, PWAs can be updated without needing to resubmit your applications to the app stores (both Apple and Google’s). 
In this article, I’ll discuss one of the most interesting and important features of PWA: Push Notifications. I’ll show you how to enable push notifications in your PWA application using Firebase Cloud Messaging (FCM). And, as a bonus, I’ll show you how to host your PWA on Firebase Hosting, as well as how to host your REST API as a serverless app through Firebase Functions. Keep your seat belt on, as this is going to be a very fun (and exciting) journey!

Tuesday, January 01, 2019

App for NDC London 2019

If you are attending NDC London 2019, be sure to download the NDC app to manage the sessions that you want to attend. Simply search for "NDC conf" in the respective app stores.
Image may contain: 5 people, people smiling, phone

IOT104 - Programming Internet of Things (IoT) using Arduino

For the upcoming IOT104 Arduino programming course, we will be using the ESP32 LoRa OLED development board. In addition, we will also be providing a number of Arduino boards, including the ESP8266. Schedule at http://calendar.learn2develop.net.
No automatic alt text available.

AND101 - Fundamentals of Android Programming using Android Studio

The AND101 course comes with the Mi A2 lite for development and testing. Course on 14-15 Feb 2019 is now confirmed. Details at http://calendar.learn2develop.net/.

IOT301 - Fundamentals of Blockchain and Smart Contracts Programming using the Ethereum Network

The IOT301 Blockchain course on the 25-26 Feb is now confirmed. Learn how Blockchain works and how to develop Smart Contacts using the solidity programming language. Details at http://calendar.learn2develop.net.