Smartphone Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

Size: px
Start display at page:

Download "Smartphone Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University"

Transcription

1 Smartphone Programming Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1

2 Objectives We will cover: Smartphone programming Android smartphone programming Resources Synchronous server interaction Asynchronous server interaction Cloud computing using Heroku 2

3 Agenda 1. Smartphone programming 2. Android virtual devices 3. HelloAndroid app 4. PennyHeroku app 5. PennyAndroid1 app 6. PennyAndroid2 app 3

4 Why Smartphone Pgmming? Question: Why study smartphone programming? Answer: 4

5 Why Smartphone Pgmming? 5

6 SmartPhone Pgmming Options Question: For smartphone programming, what are my options? Answer:

7 Smartphone Pgmming Non-Option Ordinary Web App Smartphone Native OS Browser Web App HTTP Server 7

8 Smartphone Pgmming Non-Option Ordinary web app Runs in smartphone browser Installed on smartphone by setting browser bookmark Usually unacceptable Components too small Must zoom frequently 8

9 Smartphone Pgmming Option 1 Mobile Web App Smartphone Native OS Browser Mobile Web App HTTP Server 9

10 Smartphone Pgmming Option 1 Mobile web app Runs in smartphone browser Installed by setting browser bookmark 10

11 Smartphone Pgmming Option 1 Typically composed using HTML5 Some offline support (local storage) Canvas drawing Some video and audio streaming support GeoLocation API Drag and drop 11

12 Smartphone Pgmming Option 1 Typically composed using a Mobile web app library Handles differing device characteristics: Physical device characteristics (screen sizes, orientations) Browsers, versions of browsers Versions of JavaScript Example: jquery Mobile Not a mobile version of jquery! A UI layer on top of jquery 12

13 Smartphone Pgmming Option 2 Hybrid Mobile App Smartphone Native OS Hybrid Mobile App Embedded Browser Web App App Store 13

14 Smartphone Pgmming Option 2 Hybrid mobile app Native app (platform specific) Which runs an embedded browser Which runs your web app (platform independent) Installed via app store (Google Play, Apple App Store) 14

15 Smartphone Pgmming Option 2 Typically composed using HTML5 Some offline support (local storage) Canvas drawing Some video and audio streaming support GeoLocation API Drag and drop 15

16 Smartphone Pgmming Option 2 Typically composed using a Hybrid mobile app framework Typically handles differing device characteristics (screen sizes, orientations) Typically can access most native platform features Camera, notifications, accelerometer, complex gestures Examples: Ionic (used with AngularJS), Intel XDK, NativeScript, Xamarin, PhoneGap, Framework7 16

17 Smartphone Pgmming Option 3 Native Mobile App Smartphone Native OS Native Mobile App App Store 17

18 Smartphone Pgmming Option 3 Native mobile app Installed through app store (Google Play, Apple App Store) Specific to one platform Android or ios (or Windows Phone, Blackberry, ) Can use all device features GPS, accelerometer, compass, contacts, camera, gestures, notifications, Can work offline 18

19 Smartphone Pgmming Option 3 Composed using a Native mobile app framework For Android: Android SDK For ios: ios SDK Typically composed using a Native mobile app IDE For Android: Android Studio For ios: Xcode 19

20 Aside: React Native React Native Instead of rendering to the browser s DOM, React Native invokes Objective-C APIs to render to ios components, or Java APIs to render to Android components. This sets React Native apart from other cross-platform app development options, which often end up rendering web-based views. 20

21 SmartPhone Pgmming Options Factor Device features (GPS, camera, gestures, notifications) Mobile Web App Hybrid Mobile App Offline functionality Discoverability Speed Installation Maintenance (Multiple) Native Apps 21

22 SmartPhone Pgmming Options Factor Mobile Web App Hybrid Mobile App Platform independence Content restrictions, approval process, fees Development cost User interface (Multiple) Native Apps 22

23 Why Android Pgmming? Question: Why study Android programming? Answer 1: Android programming is in Java Which we know thoroughly So we need not cover another pgmming lang (Objective-C, Swift, ) 23

24 Why Android Pgmming? Answer 2: Worldwide Smartphone Sales to End Users by Operating System OS 1Q17 Units (Thousands) 1Q17 Market Share (%) 1Q16 Units (Thousands) 1Q16 Market Share (%) Android 327, , ios 51, , Other , TOTAL 379, ,

25 Agenda 1. Smartphone programming 2. Android virtual devices 3. HelloAndroid app 4. PennyHeroku app 5. PennyAndroid1 app 6. PennyAndroid2 app 25

26 Android Virtual Devices To test an Android app Option 1: Use an Android phone Pro: Fast Option 2: Create an Android virtual device Run it using the Android emulator Pro: Convenient 26

27 Installing Android Studio Download and install Android Studio Browse to studio/index.html, and follow instructions Thereby install all required Java libraries 27

28 Creating a Virtual Device Create an Android virtual device Instructions from developer.android.com/training/basics/ firstapp/running-app.html 28

29 Creating a Virtual Device Instructions Launch Android Studio Launch the Android Virtual Device Manager by selecting Tools > Android > AVD Manager In the Your Virtual Devices screen, click Create Virtual Device In the Select Hardware screen, select a phone device and then click Next Suggestion: Choose Pixel 29

30 Creating a Virtual Device In the System Image screen, click Download for one of the recommended system images; agree to the terms to complete the download Suggestion: Choose Marshmallow After the download is complete, select the system image from the list and click Next. On the next screen, leave all the configuration settings as they are and click Finish Exit Android Studio 30

31 Running Android Emulator See AndroidSetupMac See AndroidSetupLinux See AndroidEmulate 31

32 Agenda 1. Smartphone programming 2. Android virtual devices 3. HelloAndroid app 4. PennyHeroku app 5. PennyAndroid1 app 6. PennyAndroid2 app 32

33 HelloAndroid App HelloAndroid app Simplest possible Android app One screen Displays hello, world 33

34 Defining the App HelloAndroid/ AndroidManifest.xml res/ layout/ activity_main.xml values/ values.xml src/ edu/ princeton/ hello/ MainActivity.java 34

35 Defining the App Resources The Android resource system keeps track of all non-code assets associated with an application. 35

36 Defining the App Resources Using application resources makes it easy to update various characteristics of your application without modifying code, and by providing sets of alternative resources enables you to optimize your application for a variety of device configurations (such as for different languages and screen sizes). 36

37 Defining the App values.xml A resource file Factors strings out of Java code Facilitates internationalization 37

38 Defining the App activity_main.xml A resource file The layout for the MainActivity page is a vertical LinearLayout Class LinearLayout A layout that arranges other views either horizontally in a single column or vertically in a single row. The page contains a TextView object Class TextView A user interface element that displays text to the user. To provide user-editable text, see EditText. 38

39 Defining the App MainActivity.java Class Activity An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI with setcontentview(view). 39

40 Defining the App Class Bundle A mapping from String keys to various Parcelable values. Interface Parcelable Interface for classes whose instances can be written to and restored from a Parcel. 40

41 Defining the App Class Parcel Container for a message (data and object references) that can be sent through an IBinder. A Parcel can contain both flattened data that will be unflattened on the other side of the IPC (using the various methods here for writing specific types, or the general Parcelable interface), and references to live IBinder objects that will result in the other side receiving a proxy IBinder connected with the original IBinder in the Parcel. 41

42 Defining the App Class Binder Base class for a remotable object, the core part of a lightweight remote procedure call mechanism defined by IBinder. This class is an implementation of IBinder that provides standard local implementation of such an object.???!!! 42

43 Defining the App AndroidManifest.xml The app s name is Hello Note use of resource Name is displayed in the smartphone window The app has one Activity Its name is edu.princeton.hello.mainactivity 43

44 Building the App See convenience scripts AndroidSetupLinux AndroidSetupMac AndroidBuild 44

45 Building the App (1) Use aapt (Android Asset Packaging Tool) to package the resource declarations Creates R.java, R.class, R$attr.class, R$id.class, R$layout.class, R$string.class Java representations of resources 45

46 Building the App (2) Use javac to compile Creates MainActivity.class (3) Use Jill (Jack Intermediate Language Linker) to translate Java bytecode to intermediate bytecode Creates classes.jayce 46

47 Building the App (4) Use Jack (Java Android Compiler Kit) to translate intermediate bytecode to Dalvik bytecode Creates classes.dex Dalvik is the bytecode format that the ART (Android Runtime) understands 47

48 Building the App (5) Use aapt (Android Asset Packaging Tool) to make a partial APK file containing resources, including the manifest Enhances app.apkpart APK (Android Package Kit) is the package file format used for distribution and installation of Android apps 48

49 Building the App (6) Use ApkBuilder to make the complete APK file Creates app.apkunalign (7) Use zipalign to optimize the data alignment of the APK file Creates app.apk 49

50 Building the App Resulting directory structure: HelloAndroid/ AndroidManifest.xml app.apk app.apkpart app.apkunalign classes.dex classes.jayce res/ layout/ activity_main.xml values/ values.xml 8 directories 16 files ~64KB src/ edu/ princeton/ hello/ MainActivity.java MainActivity.class R.class R.java R$attr.class R$id.class R$layout.class R$string.class 50

51 Installing/Running the App Either run virtual device on emulator, or plug phone into USB port See convenience scripts AndroidInstall Use adb (Android Debug Bridge) to install the app on the phone or emulator and run the app 51

52 The Result 52

53 Agenda 1. Smartphone programming 2. Android virtual devices 3. HelloAndroid app 4. PennyHeroku app 5. PennyAndroid1 app 6. PennyAndroid2 app 53

54 Why a Cloud Service? PennyAndroid apps must communicate with a server Where should the server run? Courselab? No; firewall CS Dept computer? OK for me, but most undergrad students don t have CS accts Local computer? No; unstable IP address Cloud? Yes! 54

55 Which Cloud Service Type? Cloud service types: Software as a Service (SaaS) The capability provided to the consumer is to use the provider s applications running on a cloud infrastructure. Example: Google Apps 55

56 Which Cloud Service Type? Platform as a Service (PaaS) The capability provided to the consumer is to deploy onto the cloud infrastructure consumercreated or acquired applications created using programming languages, libraries, services, and tools supported by the provider. Examples: Amazon Web Services, Microsoft Azure, Heroku 56

57 Which Cloud Service Type? Infrastructure as a Service (IaaS) The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. Examples: Amazon Web Services (AWS), Microsoft Azure, Google Compute Engine (GCE) 57

58 Which Cloud Service Type? Which cloud service type for Penny? SaaS: impossible; too narrow IaaS: possible, but too broad PaaS: just right! 58

59 Which PaaS Cloud Service? Which PaaS cloud service for Penny? I chose Heroku Simple Free But beware of pricing model Popular In previous semesters for COS 333 projects In general 59

60 What Comm Protocol? Observations PennyAndroid apps could communicate with Penny server using any protocol For Android apps, common to use HTTP Using HTTP would allow server implementation via Python/Bottle Decisions Use HTTP Design Penny server as Python/Bottle web app 60

61 What Comm Protocol? Observations Penny server must read author name, write book list Book list could be expressed as XML, JSON, plain text, Decisions Keep it simple Express book list as plain text 61

62 Defining the App See PennyHeroku app book.py database.py penny.py Procfile runtime.txt requirements.txt 62

63 Defining the App penny.py Same as previous versions, except The only valid requests are / and /searchresults Delivers plain text, not HTML New paragraph at end 63

64 Defining the App If the APP_LOCATION env var is set to heroku then run the application on: Host , that is, on a heroku server Whatever port is specified by the value of the PORT env var, or port 5000 if there is no PORT env var Otherwise run the application on the local computer on port

65 Defining the App Procfile Tells Heroku the app s process type; it s a web app Tells Heroku the command to start the process runtime.txt Tells Heroku which version of Python it should use requirements.txt Tells Heroku what additional modules the app uses 65

66 Building the App Get a Heroku account Browse to Choose Python as primary dev lang Enter your addr Choose a password 66

67 Building the App Install the Heroku Command Line Interface (CLI) Browse to articles/heroku-cli Follow the instructions 67

68 Log into heroku: Building the App $ heroku login Create a Git repo on Heroku: $ heroku create Git responds with yourappname, which is also the name of your Git repo For me: fast-sands

69 Building the App Create a local Git repo, and specify your Heroku Git repo as its remote: $ cd PennyHeroku # if necessary $ heroku login # if necessary $ git init $ git add. $ git commit m "initial load" $ heroku git:remote a yourappname $ # For me: $ # heroku git:remote a fast-sands (Optional) Confirm that you set the remote repo: $ git remote -v 69

70 Building the App Deploy the app to Heroku: $ cd PennyHeroku # if necessary $ heroku login # if necessary $ git push heroku master Git uploads the app to Heroku repo Heroku builds the app 70

71 Running the App On Heroku set the value of the APP_LOCATION env var to heroku: $ heroku login # if necessary $ heroku config:set APP_LOCATION=heroku 71

72 Running the App Run the Heroku app Browse to: For me, browse to: 72

73 Agenda 1. Smartphone programming 2. Android virtual devices 3. HelloAndroid app 4. PennyHeroku app 5. PennyAndroid1 app 6. PennyAndroid2 app 73

74 PennyAndroid1 App Android version of Penny Two pages Parallel to searchform and searchresults pages in Penny web apps Communicates with PennyHeroku [Demo] 74

75 Defining the App PennyAndroid1/ AndroidManifest.xml res/ layout/ activity_display_books.xml activity_main.xml values/ values.xml src/ edu/ princeton/ penny/ DisplayBooksActivity.java MainActivity.java 75

76 Defining the App values.xml Defines string resources 76

77 Defining the App activity_main.xml Defines layout of MainActivity page Vertical LinearLayout Contains an EditText object Class EditTex A user interface element for entering and modifying text. Contains a Button object Class Button A user interface element the user can tap or click to perform an action. Button tap causes call of sendmessage method 77

78 Defining the App activity_display_books.xml Defines layout of DisplayBooksActivity page Vertical LinearLayout Contains an TextView object 78

79 Defining the App MainActivity.java Defines sendmessage() Called when user taps Button Defines an Intent object Class Intent An intent is an abstract description of an operation to be performed Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed. Uses Intent object to start DisplayBooksActivity, passing it the author 79

80 Defining the App DisplayBooksActivity.java Android prohibits network access from main (UI) thread, so Main thread spawns a child thread, and waits/ join for completion Child thread uses Java URL class to contact PennyHeroku; passes book string to main thread Main thread updates TextView 80

81 Defining the App AndroidManifest.xml The app s name is Penny The app consists of two Activities The first Activity is named edu.princeton.penny.mainactivity The second Activity is named edu.princeton.penny.displaybooksactivity Its parent is MainActivity The app will use networking 81

82 Building the App Run AndroidBuild 82

83 Installing/Running the App Run AndroidEmulate Run AndroidInstall 83

84 Installing/Running the App 84

85 Installing/Running the App 85

86 Toward PennyAndroid2 Problem? User might prefer a one-screen app User might prefer app to respond to each keystroke (as with AJAX) Solution: PennyAndroid2 86

87 Agenda 1. Smartphone programming 2. Android virtual devices 3. HelloAndroid app 4. PennyHeroku app 5. PennyAndroid1 app 6. PennyAndroid2 app 87

88 PennyAndroid2 App PennyAndroid2 app One-screen app Responds to each keystroke [Demo] 88

89 Defining the App PennyAndroid2/ AndroidManifest.xml res/ layout/ activity_display_books.xml activity_main.xml values/ values.xml src/ edu/ princeton/ penny/ DisplayBooksActivity.java MainActivity.java 89

90 Defining the App values.xml Same, but Removed buttonhint resource Added textviewhint activity_main.xml The MainActivity page consists of a vertical LinearLayout containing a EditText object and a TextView object; no Button object 90

91 Defining the App MainActivity.java Defines inner class MyTextWatcher Creates MyTextWatcher object, and installs it as the listener for the EditText object MyTextWatcher object spawns child thread Child thread communicates with PennyHeroku 91

92 Defining the App MainActivity.java Problem using ordinary thread Android will not allow child thread to update TextView in UI Main thread must join child thread Main thread is unresponsive during the wait!!! Fast typing causes App is unresponsive warnings App is multi-threaded, but synchronous Solution: Use AsyncTask Make app asynchronous, as with AJAX 92

93 Defining the App Class AsyncTask AsyncTask enables proper and easy use of the UI thread. This class allows you to perform background operations and publish results on the UI thread without having to manipulate threads and/ or handlers. Internally uses ordinary Java thread AsyncTask object can update TextView in UI Main thread need not join child thread! UI remains responsive! 93

94 Defining the App AndroidManifest.xml Same, but only one Activity 94

95 Building the App Run AndroidBuild 95

96 Installing/Running the App Run AndroidEmulate Run AndroidInstall 96

97 Installing/Running the App 97

98 Summary We have covered: Smartphone programming Android smartphone programming Resources Synchronous server interaction Asynchronous server interaction Cloud computing using Heroku 98

Mobile development initiation

Mobile development initiation Mobile development initiation Outline Mobile development: o Why? o How? o New issues Android ios 2 Mobile growth ¼ Internet access Sales of smartphones and tablets increase o + 70% tab Community 3 Why

More information

Introduction To Android

Introduction To Android Introduction To Android Mobile Technologies Symbian OS ios BlackBerry OS Windows Android Introduction to Android Android is an operating system for mobile devices such as smart phones and tablet computers.

More information

COS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

COS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University COS 333: Advanced Programming Techniques Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions Course Overview Resources Topics Assignments Project (briefly) Schedule (briefly)

More information

COLLEGE OF ENGINEERING, NASHIK-4

COLLEGE OF ENGINEERING, NASHIK-4 Pune Vidyarthi Griha s COLLEGE OF ENGINEERING, NASHIK-4 DEPARTMENT OF COMPUTER ENGINEERING 1) What is Android? Important Android Questions It is an open-sourced operating system that is used primarily

More information

Android App Development

Android App Development Android App Development Outline Introduction Android Fundamentals Android Studio Tutorials Introduction What is Android? A software platform and operating system for mobile devices Based on the Linux kernel

More information

Android Programming in Bluetooth Cochlea Group

Android Programming in Bluetooth Cochlea Group Android Programming in Bluetooth Cochlea Group Zijian Zhao Abstract: My project is mainly android programming work in the Bluetooth Cochlea Group. In this report I will first introduce the background of

More information

Connect and Transform Your Digital Business with IBM

Connect and Transform Your Digital Business with IBM Connect and Transform Your Digital Business with IBM 1 MANAGEMENT ANALYTICS SECURITY MobileFirst Foundation will help deliver your mobile apps faster IDE & Tools Mobile App Builder Development Framework

More information

ANDROID SYLLABUS. Advanced Android

ANDROID SYLLABUS. Advanced Android Advanced Android 1) Introduction To Mobile Apps I. Why we Need Mobile Apps II. Different Kinds of Mobile Apps III. Briefly about Android 2) Introduction Android I. History Behind Android Development II.

More information

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg.

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg. Introduction to Android Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering October 19, 2015 Outline 1 What is Android? 2 3 Applications: A Quick Glimpse

More information

Android App Development

Android App Development Android App Development Course Contents: Android app development Course Benefit: You will learn how to Use Advance Features of Android with LIVE PROJECTS Original Fees: 15000 per student. Corporate Discount

More information

Mobile Programming Lecture 1. Getting Started

Mobile Programming Lecture 1. Getting Started Mobile Programming Lecture 1 Getting Started Today's Agenda About the Android Studio IDE Hello, World! Project Android Project Structure Introduction to Activities, Layouts, and Widgets Editing Files in

More information

Classification and Selection of Cross-Platform Tools. Michiel Willocx 17/06/2015

Classification and Selection of Cross-Platform Tools. Michiel Willocx 17/06/2015 Classification and Selection of Cross-Platform Tools Michiel Willocx 17/06/2015 Table of contents PART 1: Classification Cross-Platform Tools o Different technologies o Examples PART 2: Selection Criteria

More information

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 MODULE 1: OVERVIEW OF HTML AND CSS This module provides an overview of HTML and CSS, and describes how to use Visual Studio 2012

More information

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps WebSphere Puts Business In Motion Put People In Motion With Mobile Apps Use Mobile Apps To Create New Revenue Opportunities A clothing store increases sales through personalized offers Customers can scan

More information

Building Secure and Scalable Mobile Apps on AWS

Building Secure and Scalable Mobile Apps on AWS Building Secure and Scalable Mobile Apps on AWS Dennis Hills Mobile Developer Advocate, Amazon Web Services April 20, 2017 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Agenda

More information

Android Application Development

Android Application Development Android Application Development Octav Chipara What is Android A free, open source mobile platform A Linux-based, multiprocess, multithreaded OS Android is not a device or a product It s not even limited

More information

Pro Android 2. Sayed Y. Hashimi Satya Komatineni Dave Mac Lean. Apress

Pro Android 2. Sayed Y. Hashimi Satya Komatineni Dave Mac Lean. Apress Pro Android 2 Sayed Y. Hashimi Satya Komatineni Dave Mac Lean Apress Contents Contents at a Glance Contents About the Authors About the Technical Reviewer Acknowledgments Foreword iv v xiii xiv xv xvi

More information

Mobile Development June 2015, TEIATH, Greece

Mobile Development June 2015, TEIATH, Greece Mobile Development June 2015, TEIATH, Greece Presentation Overview 1. Introduction 2. Mobile Application Development 3. Cordova / Phonegap 4. Development Framework 5. Examples 1. INTRODUCTION Introduction

More information

CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android. Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android. Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android Emmanuel Agu What is Android? Android is world s leading mobile operating system Open source (https://source.android.com/setup/)

More information

Introduction to Mobile Application and Development

Introduction to Mobile Application and Development Introduction to Mobile Application and Development Mobile Phones A mobile phone (also called mobile, cellular telephone, cell phone, or hand phone is an electronic device used to make 1. Calls across a

More information

Introduction to Android Development

Introduction to Android Development Introduction to Android Development What is Android? Android is the customizable, easy to use operating system that powers more than a billion devices across the globe - from phones and tablets to watches,

More information

Lecture 1 - Introduction to Android

Lecture 1 - Introduction to Android Lecture 1 - Introduction to Android This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/

More information

ITG Software Engineering

ITG Software Engineering Android Security Course ID: Page 1 Last Updated 12/15/2014 Android Security ITG Software Engineering Course Overview: This 5 day course covers the Android architecture, the stack, and primary building

More information

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android Ing. Elton Domnori December 7, 2011 Mobile OS Symbian BlackBerry Window mobile Android ios Mobile OS OS First release Last release Owner Android Android 1.0 September 2008 Android 4.0 May 2011 Open Handset

More information

Multi-platform Mobile App. Development with Apache Cordova

Multi-platform Mobile App. Development with Apache Cordova Multi-platform Mobile App. Development with Apache Cordova MTAT.03.262 2017 Fall Jakob Mass jakob.mass@ut.ee 27.10.2017 MTAT.03.262 Introduction Fragmented market Developers have limited resources Platform

More information

Developer s overview of the Android platform

Developer s overview of the Android platform Developer s overview of the Android platform Erlend Stav SINTEF November 10, 2009 mailto:erlend.stav@sintef.no 1 Overview Vendors and licensing Application distribution Platform architecture Application

More information

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism ANDROID TRAINING COURSE CONTENT SECTION 1 : INTRODUCTION Android What it is? History of Android Importance of Java language for Android Apps Other mobile OS-es Android Versions & different development

More information

Copyright

Copyright 1 Angry Birds Sudoku Trivia Crack Candy Crash Saga 2 The NYT app Buzzfeed Flipboard Reddit 3 Finance apps Calendars Translators Grocery list makers 4 Music apps Travel Apps Food & Drink apps Dating apps

More information

Required Core Java for Android application development

Required Core Java for Android application development Required Core Java for Android application development Introduction to Java Datatypes primitive data types non-primitive data types Variable declaration Operators Control flow statements Arrays and Enhanced

More information

Mobile Application Development

Mobile Application Development Android Native Application Development Mobile Application Development 1. Android Framework and Android Studio b. Android Software Layers c. Android Libraries d. Components of an Android Application e.

More information

Android Development Tools = Eclipse + ADT + SDK

Android Development Tools = Eclipse + ADT + SDK Lesson 2 Android Development Tools = Eclipse + ADT + SDK Victor Matos Cleveland State University Portions of this page are reproduced from work created and shared by Google and used according to terms

More information

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1 Android Lesson 1 1 1 1.0 to Android 2 Contents Android is an ecosystem Android platform architecture Android Versions Challenges of Android app development App fundamentals 3 Android Ecosystem 4 What is

More information

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012 ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012 AGENDA Android v. ios Design Paradigms Setup Application Framework Demo Libraries Distribution ANDROID V. IOS Android $25 one-time

More information

Index LICENSED PRODUCT NOT FOR RESALE

Index LICENSED PRODUCT NOT FOR RESALE Index LICENSED PRODUCT NOT FOR RESALE A Absolute positioning, 100 102 with multi-columns, 101 Accelerometer, 263 Access data, 225 227 Adding elements, 209 211 to display, 210 Animated boxes creation using

More information

COS 333: Advanced Programming Techniques

COS 333: Advanced Programming Techniques COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University Please pick up handouts at the back of the room 1 COS 333: Course Overview Copyright 2018 by Robert M. Dondero, Ph.D.

More information

IGEEKS TECHNOLOGIES. Software Training Division. Academic Live Projects For BE,ME,MCA,BCA and PHD Students

IGEEKS TECHNOLOGIES. Software Training Division. Academic Live Projects For BE,ME,MCA,BCA and PHD Students Duration:40hours IGEEKS TECHNOLOGIES Software Training Division Academic Live Projects For BE,ME,MCA,BCA and PHD Students IGeekS Technologies (Make Final Year Project) No: 19, MN Complex, 2nd Cross, Sampige

More information

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Android App Development Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Mobile devices (e.g., smartphone, tablet PCs, etc.) are increasingly becoming an essential part of human life

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Evaluation Individual

More information

CS260 Intro to Java & Android 04.Android Intro

CS260 Intro to Java & Android 04.Android Intro CS260 Intro to Java & Android 04.Android Intro Winter 2015 Winter 2015 CS260 - Intro to Java & Android 1 Android - Getting Started Android SDK contains: API Libraries Developer Tools Documentation Sample

More information

IEMS 5722 Mobile Network Programming and Distributed Server Architecture

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 1 Course Introduction Lecturer: Albert C. M. Au

More information

2015 NALIT Professional Development Seminar September 30, Tools for Mobile App Development

2015 NALIT Professional Development Seminar September 30, Tools for Mobile App Development 2015 NALIT Professional Development Seminar September 30, 2015 Tools for Mobile App Development Kyle Forster, IT Manager North Dakota Legislative Council Mobile App ND Legis Daily Daily legislative agenda

More information

Mobile Application Development

Mobile Application Development Mobile Application Development The principal goal of education is to create men and women who are capable of doing new things, not simply repeating what other generations have done. -Jean Piaget Mobile

More information

OWASP German Chapter Stammtisch Initiative/Ruhrpott. Android App Pentest Workshop 101

OWASP German Chapter Stammtisch Initiative/Ruhrpott. Android App Pentest Workshop 101 OWASP German Chapter Stammtisch Initiative/Ruhrpott Android App Pentest Workshop 101 About What we will try to cover in the first session: Setup of a Mobile Application Pentest Environment Basics of Mobile

More information

Mobile and Wireless Systems Programming

Mobile and Wireless Systems Programming to Android Android is a software stack for mobile devices that includes : an operating system middleware key applications Open source project based on Linux kernel 2.6 Open Handset Alliance (Google, HTC,

More information

Index. Alessandro Del Sole 2017 A. Del Sole, Beginning Visual Studio for Mac,

Index. Alessandro Del Sole 2017 A. Del Sole, Beginning Visual Studio for Mac, Index A Android applications, Xamarin activity and intent, 116 APIs in C# Activity classes, 123 Android manifest, 129 App.cs, 123 app properties, setting, 128 CreateDirectoryForPictures methods, 124 device

More information

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Programming. Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Programming. Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Programming Emmanuel Agu Android Apps: Big Picture UI Design using XML UI design code (XML) separate from the program (Java) Why?

More information

CS 528 Mobile and Ubiquitous Computing Lecture 2a: Introduction to Android Programming. Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 2a: Introduction to Android Programming. Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 2a: Introduction to Android Programming Emmanuel Agu Editting in Android Studio Recall: Editting Android Can edit apps in: Text View: edit XML directly Design

More information

Developing Android applications in Windows

Developing Android applications in Windows Developing Android applications in Windows Below you will find information about the components needed for developing Android applications and other (optional) software needed to connect to the institution

More information

Minds-on: Android. Session 1

Minds-on: Android. Session 1 Minds-on: Android Session 1 Paulo Baltarejo Sousa Instituto Superior de Engenharia do Porto 2016 Outline Mobile devices Android OS Android architecture Android Studio Practice 1 / 33 2 / 33 Mobile devices

More information

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP) Android Syllabus Pre-requisite: C, C++, Java Programming SQL & PL SQL Chapter 1: Introduction to Android Introduction to android operating system History of android operating system Features of Android

More information

Getting Started with Android Development Zebra Android Link-OS SDK Android Studio

Getting Started with Android Development Zebra Android Link-OS SDK Android Studio Getting Started with Android Development Zebra Android Link-OS SDK Android Studio Overview This Application Note describes the end-to-end process of designing, packaging, deploying and running an Android

More information

Native Mobile Apps in JavaScript

Native Mobile Apps in JavaScript Native Mobile Apps in JavaScript Using Exponent and React Native Charlie Cheever CS50 Seminar October 28, 2016 About Me Harvard Amazon Facebook Quora Exponent A Brief History of Mobile Development Mobile

More information

Syllabus- Java + Android. Java Fundamentals

Syllabus- Java + Android. Java Fundamentals Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing

More information

Android Programming (5 Days)

Android Programming (5 Days) www.peaklearningllc.com Android Programming (5 Days) Course Description Android is an open source platform for mobile computing. Applications are developed using familiar Java and Eclipse tools. This Android

More information

Android for Java Developers Dr. Markus Schmall, Jochen Hiller

Android for Java Developers Dr. Markus Schmall, Jochen Hiller Android for Java Developers Dr. Markus Schmall Jochen Hiller 1 Who we are Dr. Markus Schmall m.schmall@telekom.de Deutsche Telekom AG Jochen Hiller j.hiller@telekom.de Deutsche Telekom AG 2 Agenda Introduction

More information

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011 Android for Ubiquitous Computing Researchers Andrew Rice University of Cambridge 17-Sep-2011 Getting started Website for the tutorial: http://www.cl.cam.ac.uk/~acr31/ubicomp/ Contains links to downloads

More information

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Introduction to the Oracle Mobile Development Platform Dana Singleterry Product Management Oracle Development Tools Global Installed Base: PCs vs Mobile Devices 3 Mobile Enterprise Challenges In Pursuit

More information

ECOM 5341 Mobile Computing(Android) Eng.Ruba A. Salamah

ECOM 5341 Mobile Computing(Android) Eng.Ruba A. Salamah ECOM 5341 Mobile Computing(Android) 1 Eng.Ruba A. Salamah Lecture # 2 Android Tools Objectives Understand Android Tools Setup Android Development Environment Create HelloWorld Application Understand HelloWorld

More information

Course Learning Outcomes (CLO): Student Outcomes (SO):

Course Learning Outcomes (CLO): Student Outcomes (SO): Course Coverage Course Learning Outcomes (CLO): 1. Understand the technical limitations and challenges posed by current mobile devices and wireless communications; be able to evaluate and select appropriate

More information

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android. Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android. Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Emmanuel Agu What is Android? Android is world s leading mobile operating system Open source Google: Owns Android, maintains it,

More information

GUJARAT TECHNOLOGICAL UNIVERSITY

GUJARAT TECHNOLOGICAL UNIVERSITY 1. Learning Objectives: To be able to understand the process of developing software for the mobile To be able to create mobile applications on the Android Platform To be able to create mobile applications

More information

Web Development 20480: Programming in HTML5 with JavaScript and CSS3. Upcoming Dates. Course Description. Course Outline

Web Development 20480: Programming in HTML5 with JavaScript and CSS3. Upcoming Dates. Course Description. Course Outline Web Development 20480: Programming in HTML5 with JavaScript and CSS3 Learn how to code fully functional web sites from the ground up using best practices and web standards with or without an IDE! This

More information

AWS Lambda. 1.1 What is AWS Lambda?

AWS Lambda. 1.1 What is AWS Lambda? Objectives Key objectives of this chapter Lambda Functions Use cases The programming model Lambda blueprints AWS Lambda 1.1 What is AWS Lambda? AWS Lambda lets you run your code written in a number of

More information

The World of Android Development

The World of Android Development The World of Android Development Java Concepts The Big Difference WEB APPS & MOBILE APPS Advantages of Web apps o Universal access Browsers are everywhere Any device on the network can access content PCs,

More information

Upon completion of the second part of the lab the students will have:

Upon completion of the second part of the lab the students will have: ETSN05, Fall 2017, Version 2.0 Software Development of Large Systems Lab 2 1. INTRODUCTION The goal of lab 2 is to introduce students to the basics of Android development and help them to create a starting

More information

Mobile Technologies. Types of Apps

Mobile Technologies. Types of Apps Mobile Technologies Types of Apps What is mobile? Devices and their capabilities It s about people Fundamentally, mobile refers to the user, and not the device or the application. Barbara Ballard, Designing

More information

Introduction to Android development

Introduction to Android development Introduction to Android development Manifesto Digital We re an award winning London based digital agency that loves ideas design and technology We aim to make people s lives better, easier, fairer, more

More information

Course 20480: Programming in HTML5 with JavaScript and CSS3

Course 20480: Programming in HTML5 with JavaScript and CSS3 Course 20480: Programming in HTML5 with JavaScript and CSS3 Overview About this course This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic HTML5/CSS3/JavaScript

More information

CS 403X Mobile and Ubiquitous Computing Lecture 3: Introduction to Android Programming Emmanuel Agu

CS 403X Mobile and Ubiquitous Computing Lecture 3: Introduction to Android Programming Emmanuel Agu CS 403X Mobile and Ubiquitous Computing Lecture 3: Introduction to Android Programming Emmanuel Agu Android UI Tour Home Screen First screen, includes favorites tray (e.g phone, mail, messaging, web, etc)

More information

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 ABOUT THIS COURSE This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic HTML5/CSS3/JavaScript programming skills. This course is an entry point into

More information

SHWETANK KUMAR GUPTA Only For Education Purpose

SHWETANK KUMAR GUPTA Only For Education Purpose Introduction Android: INTERVIEW QUESTION AND ANSWER Android is an operating system for mobile devices that includes middleware and key applications, and uses a modified version of the Linux kernel. It

More information

Java Training Center - Android Application Development

Java Training Center - Android Application Development Java Training Center - Android Application Development Android Syllabus and Course Content (3 months, 2 hour Daily) Introduction to Android Android and it's feature Android releases and Versions Introduction

More information

Chapter 2 Setting Up for Development

Chapter 2 Setting Up for Development Introduction to Android Application Development, Android Essentials, Fifth Edition Chapter 2 Setting Up for Development Chapter 2 Overview Learn how to set up our Android development environment Look at

More information

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement. CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.

More information

Android Development Tutorial. Yi Huang

Android Development Tutorial. Yi Huang Android Development Tutorial Yi Huang Contents What s Android Android architecture Android software development Hello World on Android More 2 3 What s Android Android Phones Sony X10 HTC G1 Samsung i7500

More information

Programming in HTML5 with JavaScript and CSS3

Programming in HTML5 with JavaScript and CSS3 Programming in HTML5 with JavaScript and CSS3 20480B; 5 days, Instructor-led Course Description This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic

More information

CS260 Intro to Java & Android 05.Android UI(Part I)

CS260 Intro to Java & Android 05.Android UI(Part I) CS260 Intro to Java & Android 05.Android UI(Part I) Winter 2018 Winter 2018 CS250 - Intro to Java & Android 1 User Interface UIs in Android are built using View and ViewGroup objects A View is the base

More information

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction WHITE PAPER RedHat OpenShift Container Platform Abstract Benefits: Applications are designed around smaller independent components called microservices. Elastic resources: Scale up or down quickly and

More information

Getting started with Tabris.js Tutorial Ebook

Getting started with Tabris.js Tutorial Ebook Getting started with Tabris.js 2.3.0 Tutorial Ebook Table of contents Introduction...3 1 Get started...4 2 Tabris.js in action...5 2.1 Try the examples...5 2.2 Play with the examples...7 2.3 Write your

More information

Ios Sdk Documentation For Windows 7 32 Bit Full Version

Ios Sdk Documentation For Windows 7 32 Bit Full Version Ios Sdk Documentation For Windows 7 32 Bit Full Version Download Latest ios SDK & Sample Project Got the SDK? v5.3.0 (May 7, 2015) Native ios SDK now sends the version of the Unity wrapper SDK along with

More information

SD Module- Android Programming

SD Module- Android Programming Assignment No. 1 SD Module- Android Programming R (2) C (4) V (2) T (2) Total (10) Dated Sign Title: Download Install and Configure Android Studio on Linux /windows platform. Problem Definition: Install

More information

Copyright

Copyright Copyright NataliaS@portnov.com 1 Overview: Mobile APPS Categories Types Distribution/Installation/Logs Mobile Test Industry Standards Remote Device Access (RDA) Emulators Simulators Troubleshooting Guide

More information

Preface...3 Acknowledgments...4. Contents...5. List of Figures...17

Preface...3 Acknowledgments...4. Contents...5. List of Figures...17 Contents - 5 Contents Preface...3 Acknowledgments...4 Contents...5 List of Figures...17 Introduction...23 History of Delphi...24 Delphi for mobile platforms...27 About this book...27 About the author...29

More information

Android. (XKE Mars 2009) Erwan Alliaume.

Android. (XKE Mars 2009) Erwan Alliaume. Android (XKE Mars 2009) Erwan Alliaume ealliaume(*at*)xebia(*dot*)fr http://www.xebia.fr http://blog.xebia.fr History August 2005 Google acquires Android November 2007 Open Handset Alliance announcement

More information

Real-Time Embedded Systems

Real-Time Embedded Systems Real-Time Embedded Systems DT8025, Fall 2016 http://goo.gl/azfc9l Lecture 8 Masoumeh Taromirad m.taromirad@hh.se Center for Research on Embedded Systems School of Information Technology 1 / 51 Smart phones

More information

Oracle Mobile Application Framework

Oracle Mobile Application Framework Oracle Mobile Application Framework Oracle Mobile Application Framework (Oracle MAF) is a hybrid-mobile development framework that enables development teams to rapidly develop single-source applications

More information

How to Convert a Simple Web Site into a Mobile App. Using PhoneGap Build, PhoneGap Desktop, PhoneGap CLI. Use Android Studio

How to Convert a Simple Web Site into a Mobile App. Using PhoneGap Build, PhoneGap Desktop, PhoneGap CLI. Use Android Studio How to Convert a Simple Web Site into a Mobile App Using PhoneGap Build, PhoneGap Desktop, PhoneGap CLI or Android Studio Instead of learning how to program in a native mobile app language (e.g., Java/Kotlin

More information

Copyright

Copyright Copyright NataliaS@portnov.com 1 Overview: Mobile APPS Categories Types Distribution/Installation/Logs Mobile Test Industry Standards Remote Device Access (RDA) Emulators Simulators Troubleshooting Guide

More information

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER BY Javid M. Alimohideen Meerasa M.S., University of Illinois at Chicago, 2003 PROJECT Submitted as partial fulfillment of the requirements for the degree

More information

Android App Development. Ahmad Tayeb

Android App Development. Ahmad Tayeb Android App Development Ahmad Tayeb Ahmad Tayeb Lecturer @ Department of Information Technology, Faculty of Computing and Information Technology, KAU Master degree from Information Sciences and Technologies,

More information

Wirtschaftsinformatik Skiseminar ao. Prof. Dr. Rony G. Flatscher. Seminar paper presentation Dennis Robert Stöhr

Wirtschaftsinformatik Skiseminar ao. Prof. Dr. Rony G. Flatscher. Seminar paper presentation Dennis Robert Stöhr Android Programming Wirtschaftsinformatik Skiseminar ao. Prof. Dr. Rony G. Flatscher Seminar paper presentation Dennis Robert Stöhr 0453244 11.01.2011 Agenda Introduction Basics of Android Development

More information

CS260 Intro to Java & Android 05.Android UI(Part I)

CS260 Intro to Java & Android 05.Android UI(Part I) CS260 Intro to Java & Android 05.Android UI(Part I) Winter 2015 Winter 2015 CS250 - Intro to Java & Android 1 User Interface UIs in Android are built using View and ViewGroup objects A View is the base

More information

COS 333: Advanced Programming Techniques. Robert M. Dondero, Ph.D. Princeton University

COS 333: Advanced Programming Techniques. Robert M. Dondero, Ph.D. Princeton University COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions General Information Topics Assignments Project (briefly) Schedule Policies The Programming

More information

Software Architecture Documentation for the JRC MYGEOSS app for Invasive Species project

Software Architecture Documentation for the JRC MYGEOSS app for Invasive Species project Software Architecture Documentation for the JRC MYGEOSS app for Invasive Species project 2015.3724 Table of Contents 1 Architecture View... 2 2 Application... 3 2.1 Technologies Used... 3 2.1.1 Apache

More information

The Now Platform Reference Guide

The Now Platform Reference Guide The Now Platform Reference Guide A tour of key features and functionality START Introducing the Now Platform Digitize your business with intelligent apps The Now Platform is an application Platform-as-a-Service

More information

VS005 - Cordova vs NativeScript

VS005 - Cordova vs NativeScript presenta VS005 - Cordova vs NativeScript Fabio Franzini Microsoft MVP www.wpc2015.it info@wpc2015.it - +39 02 365738.11 - #wpc15it 1 Apache Cordova Telerik NativeScript Cordova VS NativeScript Agenda www.wpc2015.it

More information

Open Source Library Developer & IT Pro

Open Source Library Developer & IT Pro Open Source Library Developer & IT Pro Databases LEV 5 00:00:00 NoSQL/MongoDB: Buildout to Going Live INT 5 02:15:11 NoSQL/MongoDB: Implementation of AngularJS INT 2 00:59:55 NoSQL: What is NoSQL INT 4

More information

XML Tutorial. NOTE: This course is for basic concepts of XML in line with our existing Android Studio project.

XML Tutorial. NOTE: This course is for basic concepts of XML in line with our existing Android Studio project. XML Tutorial XML stands for extensible Markup Language. XML is a markup language much like HTML used to describe data. XML tags are not predefined in XML. We should define our own Tags. Xml is well readable

More information

Android Online Training

Android Online Training Android Online Training IQ training facility offers Android Online Training. Our Android trainers come with vast work experience and teaching skills. Our Android training online is regarded as the one

More information

Why attend a Lianja training course? Course overview. Course Details

Why attend a Lianja training course? Course overview. Course Details These courses will be arranged periodically in different geographic regions or can be arranged on-site at customer premises by customer request. They can also be customized for individual customers needs

More information