UI-Testing, Reactive Programming and some Kotlin.
|
|
- Anabel Grant
- 6 years ago
- Views:
Transcription
1 UI-Testing, Reactive Programming and some Kotlin
2 Load up your guns, and bring your friends This is the end, My only Friend, the end Äntligen stod prästen i predikstolen I ll be back
3 Agenda Questions Recap Testing mostly code Reactive programming Kotlin
4 ReCap
5 5 A GUI for a programmer public void paint(graphics g){ g.moveto(100,100); g.setcolor( ffffff ); g.drawlineto(200,300); } Spans from low level to very high level val intent = Intent() intent.type = "image/*" intent.action = Intent.ACTION_GET_CONTENT startactivityforresult( Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
6 ...and even visual 6
7 GUI for the User 7
8 8 And GUI for You in this course Java/Android public void paint(graphics g){ g.moveto(100,100); g.setcolor( ffffff ); g.drawlineto(200,300); } Spans from low level to very high level val intent = Intent() intent.type = "image/*" intent.action = Intent.ACTION_GET_CONTENT startactivityforresult( Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
9 9 How do we get from What user wants and needs (user/system requirements)
10 10 How do we get from public void paint(graphics g){ g.moveto(100,100); g.setcolor( ffffff ); g.drawlineto(200,300); }
11 11 Solution Software_design_pattern Design Patters for gui-code: How to build it Interaction Patterns for user requirements: What to build
12 Testing 12
13 Why Reactive Programming? Why another programming paradigm? Things are different now! Conventional software applications won t be able to fulfill the modern enterprise needs. Its time to rethink about our software architecture patterns and programming techniques.
14 What it actually means to be Reactive? Readily responsive to a stimulus - merriam-webster Reactive Systems : responds in a timely manner stays responsive in the face of failure stays responsive under varying workload rely on asynchronous message-passing
15 Reactive Programming A programming paradigm that helps you to build Reactive Systems. E.g.: Google Spreadsheet In a reactive world, we can't just wait for a function result, a network call, or a database query to return. Every moment we wait for something, we lose the opportunity to do other things in parallel. Reactive programming can be done in several ways Akka Actors Reactive Extensions (Rx) reactive + functional
16 Callbacks A callback is a piece of executable code that is passed as an argument to other code, which is expected to call back the argument at some convenient time.
17 Callbacks Use case : User clicks a button on the Client Client send a request to the Application Application calls service A Get the response from ServiceA and send it to service B Get the response from ServiceB and send it to Service C Get the response from ServiceC and send it to the Client Service A 1 Client Application 2 Service B 3 Service C
18 Callbacks Callback Hell! Callbacks based applications get extremely complex when we have nested callbacks. Leads to messy code, hard to troubleshoot. Example : rxjava/serviceinvoker/callback
19 More the callback hell Unpredictable order In a complex network of listeners, the order in which events are received can depend on the order in which you registered the listeners, which isn t helpful. FRP makes the order in which events are processed not matter by making it completely nondetectable. Missed first event It can be difficult to guarantee that you ve registered your listeners before you send the first event. FRP is transactional, so it s possible to provide this guarantee. Messy state Callbacks push your code into a traditional state-machine style, which gets messy fast. FRP brings order. Leaking callbacks If you forget to deregister your listener, your program will leak memory. Listeners reverse the natural data dependency but don t reverse the keep-alive dependency as you d like them to. FRP does this. Accidental recursion The order in which you update local state and notify listen- ers can be critical, and it s easy to make mistakes. FRP eliminates this issue. Threading issues Attempting to make listeners thread-safe can lead to dead- locks, and it can be difficult to guarantee that no more callbacks will be received after deregistering a listener. FRP eliminates these issues.
20 Paradigm shift Not just a new way of handling callbacks A gentle slide from OOP -> functional
21 Reactive Extensions - Rx ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences. The Observer pattern done right. Initially implemented for C# by Microsoft, later ported to many languages by Netflix Rx. Rx-Java is the Java implementation.
22 Observer Pattern Subject notifies the observers when a change has happened in the subject.
23 Observable Rx-Java introduces Observable data type by extending the traditional Observer Pattern. Observers Observable
24 Observable vs Observer Pattern The producer signal that there is no more data available: the oncompleted() event The producer can signal that an error occurred onerror() event
25 What is functional reactive programming? It s a replacement for the widely used observer pattern, also known as listeners or callbacks. It s a composable, modular way to code event-driven logic. It s a different way of thinking: the program is expressed as a reaction to its inputs, or as a flow of data. It brings order to the management of program state. It s something fundamental: we think that anyone who tries to solve the prob- lems in the observer pattern will eventually invent FRP. It s normally implemented as a lightweight software library in a standard programming language. It can be seen as a complete embedded language for stateful logic.
26 Observable and Subscriber The producer signal that there is no more data available: the subscribe onnext* Subscriber Observable oncompleted
27 Observable and Subscriber In Action
28 Observable and Operators Observable -> Operator -> Subscriber
29 Filtering Observables Selectively emit items from a source Observable
30 Filtering Observables Filtering Operators
31 Transforming Observables Transform items that are emitted by an Observable
32 Transforming Observables Transforming Operators
33 and for Android RxJava is available RxBindings: Android UI-events for RxJava
34 Button b = (Button)findViewById(R.id.button); b.setonclicklistener(new View.OnClickListener() public void onclick(view v) { // Magic } }); Button b = (Button)findViewById(R.id.button); Subscription buttonsub = RxView.clicks(b).subscribe(new Action1<Void>() public void call(void avoid) { // magic stuff } });
35 final EditText name = (EditText) v.findviewbyid(r.id.name); name.addtextchangedlistener(new TextWatcher() public void beforetextchanged(charsequence s, int start, in public void ontextchanged(charsequence s, int start, int be // do some work here with the updated text public void aftertextchanged(editable s) { }); }
36 final EditText name = (EditText) v.findviewbyid(r.id.name); Subscription edittextsub = RxTextView.textChanges(name).subscribe(new Action1<String>() public void call(string value) { //Do what you need to do } });
37 final TextView namelabel = (TextView) findviewbyid(r.id.name final EditText name = (EditText) findviewbyid(r.id.name); Subscription edittextsub = RxTextView.textChanges(name).map(new Func1<CharSequence, String>() public String call(charsequence charsequence) { return new StringBuilder(charSequence).reverse() } }).subscribe(new Action1<String>() public void call(string value) { namelabel.settext(value); } });
38 Kotlin
39 39
40 40
41 41
42 42
43 43
44 Java vs Kotlin Syntax Java final int x; final int y = 1; int w; int z = 2; z = 3; w = 1; Kotlin val x: Int val y = 1 var w: Int var z = 2 z = 3 w = 1 44
45 Is As In Java if(x instanceof Integer){ } final String text = (String) other; if(x >= 0 && x <= 10 ){} Kotlin if (x is Int) { } val text = other as String if (x in 0..10) { } 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 Null Safety Java final String name = null; String lastname; lastname = null Kotlin val name: String? = null var lastname: String? lastname = null var firstname: String firstname = null // Compilation error!! val length = b!!.length 54
55 Model Class in Java 55
56 Model/Data Class in Kotlin 56
57 Let s do some fun :D 57
58 Extensions Feature 58
59 Smart Casting 59
60 More Features 60
61 More Features 61
62 Kotlin Java class MyActivity : AppCompatActivity() { override fun oncreate(savedinstancestate: Bundle?) { super.oncreate(savedinstancestate) setcontentview(r.layout.activity) } } public class MyActivity extends AppCompatActivity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity); } }
63 Kotlin Java val fab = findviewbyid(r.id.fab) as FloatingActionButton fab.setonclicklistener {... } FloatingActionButton fab = (FloatingActionButton) findviewbyid(r.id.fab); fab.setonclicklistener(new View.OnClickListener() public void onclick(view view) {... } });
64 Kotlin Java private val monnavigationitemselectedlistener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemid) { R.id.navigation_home -> { mtextmessage.settext(r.string.title_home) return@onnavigationitemselectedlistener true } R.id.navigation_dashboard -> { mtextmessage.settext(r.string.title_dashboard) return@onnavigationitemselectedlistener true } } false } private BottomNavigationView.OnNavigationItemSelectedListener monnavigationitemselectedlistener = new BottomNavigationView.OnNavigationItemSelectedListener() public boolean onnavigationitemselected(@nonnull MenuItem item) { switch (item.getitemid()) { case R.id.navigation_home: mtextmessage.settext(r.string.title_home); return true; case R.id.navigation_dashboard: mtextmessage.settext(r.string.title_dashboard); return true; } return false; } };
Kotlin for Android developers
ROME - APRIL 13/14 2018 Kotlin for Android developers Victor Kropp, JetBrains @kropp Kotlin on JVM + Android JS In development: Kotlin/Native ios/macos/windows/linux Links Kotlin https://kotlinlang.org
More informationData binding. in a Kotlin world. Lisa
Data binding in a Kotlin world Lisa Wray Data binding in a Kotlin world Lisa Wray Data binding in a Kotlin world Lisa Wray Less code is better code 1. Quick tour of The Best Parts of data binding 2. Kotlin
More informationAndroid Application Model I
Android Application Model I CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath Reading: Big Nerd Ranch Guide, Chapters 3, 5 (Activities);
More informationBE PROACTIVE USE REACTIVE
BE PROACTIVE USE REACTIVE This morning we re going to talk about reactive programming. We ll cover some of the what, why, and how, hopefully with a bend towards grasping the fundamentals. We ll have some
More informationRxJava. and WHY you should care. Jeroen Tietema
RxJava and WHY you should care Jeroen Tietema Overview intro of RxJava why? some tips What is RxJava? Java implementation of Reactive Extensions Reactive Extensions is.net implementation of Reactive Programming
More informationAndroid Application Model I. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.
Android Application Model I CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Framework Support (e.g. Android) 2 Framework Capabilities
More informationProduced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar
Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology
More informationMultithreading and Interactive Programs
Multithreading and Interactive Programs CS160: User Interfaces John Canny. This time Multithreading for interactivity need and risks Some design patterns for multithreaded programs Debugging multithreaded
More informationEmbedded Systems Programming - PA8001
Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 8 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering
More informationKotlin, Start? Start! (pluu) Android Developer GDG Korea Android Organizer
Kotlin, Start? Start! (pluu) Android Developer GDG Korea Android Organizer Agenda Kotlin Overview Kotlin?? Basic fun main(args: Array): Unit { println("hello, world!") Basic Function Keyword
More informationReal-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 informationKotlin for Android Developers
Kotlin for Android Developers Learn Kotlin the easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published
More informationThink like an Elm developer
Think like an Elm developer Piper Niehaus Denver, CO, USA Backpacker / skier Nonprofit board chair Software Engineer at Pivotal Pivotal Tracker team Elm in Production since 2016 Internal Products and Services
More informationSoftware Engineering Large Practical: Storage, Settings and Layouts. Stephen Gilmore School of Informatics October 27, 2017
Software Engineering Large Practical: Storage, Settings and Layouts Stephen Gilmore School of Informatics October 27, 2017 Contents 1. Storing information 2. Settings 3. Layouts 1 Storing information Storage
More informationKotlin for Android Developers
Kotlin for Android Developers Learn Kotlin the easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published
More informationMVC Apps Basic Widget Lifecycle Logging Debugging Dialogs
Overview MVC Apps Basic Widget Lifecycle Logging Debugging Dialogs Lecture: MVC Model View Controller What is an App? Android Activity Lifecycle Android Debugging Fixing Rotations & Landscape Layouts Localization
More informationReactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved.
Reactive Programming in Java Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Prerequisites: Functional Programming as in Java 8 Streams of Java 8 Lambda expressions Method references Expectations
More informationEnums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed.
Enums Introduction In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. The Final Tag To display why this is useful, I m going to
More informationTextView. A label is called a TextView. TextViews are typically used to display a caption TextViews are not editable, therefore they take no input
1 UI Components 2 UI Components 3 A label is called a TextView. TextView TextViews are typically used to display a caption TextViews are not editable, therefore they take no input - - - - - - -
More informationGetting Started With Android Feature Flags
Guide Getting Started With Android Feature Flags INTRO When it comes to getting started with feature flags (Android feature flags or just in general), you have to understand that there are degrees of feature
More informationObject Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.
CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java
More informationReactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved.
Reactive Programming in Java Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Prerequisites: Core Java Lambda Expressions Method references Functional Programming Web - application development
More informationComputer Science Large Practical: Storage, Settings and Layouts. Stephen Gilmore School of Informatics October 26, 2017
Computer Science Large Practical: Storage, Settings and Layouts Stephen Gilmore School of Informatics October 26, 2017 Contents 1. Storing information 2. Kotlin compilation 3. Settings 4. Layouts 1 Storing
More informationCISC-124. Casting. // this would fail because we can t assign a double value to an int // variable
CISC-124 20180122 Today we looked at casting, conditionals and loops. Casting Casting is a simple method for converting one type of number to another, when the original type cannot be simply assigned to
More informationCMSC436: Fall 2013 Week 3 Lab
CMSC436: Fall 2013 Week 3 Lab Objectives: Familiarize yourself with the Activity class, the Activity lifecycle, and the Android reconfiguration process. Create and monitor a simple application to observe
More informationFavoring Isolated Mutability The Actor Model of Concurrency. CSCI 5828: Foundations of Software Engineering Lecture 24 04/11/2012
Favoring Isolated Mutability The Actor Model of Concurrency CSCI 5828: Foundations of Software Engineering Lecture 24 04/11/2012 1 Goals Review the material in Chapter 8 of the Concurrency textbook that
More informationProduced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology
Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie Android Anatomy Android Anatomy 2! Agenda
More informationARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV
ARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV 90seconds.tv 14000+ VIDEOS 1200+ BRANDS 92+ COUNTRIES data class RegisterViewModelStateImpl( override val email: ObservableString
More informationMEAP Edition Manning Early Access Program RxJava for Android Developers Version 8
MEAP Edition Manning Early Access Program RxJava for Android Developers Version 8 Copyright 2017 Manning Publications For more information on this and other Manning titles go to www.manning.com Manning
More informationMATERIAL DESIGN. Android Elective Course 4th Semester. June 2016 Teacher: Anders Kristian Børjesson. Ovidiu Floca
MATERIAL DESIGN Android Elective Course 4th Semester June 2016 Teacher: Anders Kristian Børjesson Ovidiu Floca 1 CONTENTS 2 Introduction... 2 3 Problem Definition... 2 4 Method... 2 5 Planning... 3 6 Watching
More informationA simple, scalable app architecture with Android Annotations Luke Sleeman Freelance Android developer lukesleeman.com.au
A simple, scalable app architecture with Android Annotations Luke Sleeman Freelance Android developer lukesleeman.com.au Image CC: https://flic.kr/p/6oqczb Luke Sleeman - Freelance developer specialising
More informationProgram Graph. Lecture 25: Parallelism & Concurrency. Performance. What does it mean?
Program Graph Lecture 25: Parallelism & Concurrency CS 62 Fall 2015 Kim Bruce & Michael Bannister Some slides based on those from Dan Grossman, U. of Washington Program using fork and join can be seen
More informationAndroid Programming Lecture 8: Activities, Odds & Ends, Two New Views 9/28/2011
Android Programming Lecture 8: Activities, Odds & Ends, Two New Views 9/28/2011 Return Values from Activities: Callee Side How does the Sub-Activity send back a response? Create an Intent to return Stuff
More informationAndroid About.me/DavidCorrado Mobile Meetup Organizer
Android Tips/Tricks @DavidCorrado About.me/DavidCorrado Mobile Meetup Organizer IDE Don t Use Eclipse Use either Android Studio/IntelliJ They are basically the same thing. They are both built off of IntelliJ
More informationScreen Slides. The Android Studio wizard adds a TextView to the fragment1.xml layout file and the necessary code to Fragment1.java.
Screen Slides References https://developer.android.com/training/animation/screen-slide.html https://developer.android.com/guide/components/fragments.html Overview A fragment can be defined by a class and
More informationAgenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors Agenda
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationProduced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar
Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology
More informationArchitecture using Functional Programming concepts < + >
Architecture using Functional Programming concepts < + > Jorge Castillo @JorgeCastilloPr 1 2 Kotlin and Functional Programming FP means concern separation (declarative computations vs runtime execution),
More informationWriting Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase. Naresh Chintalcheru
Writing Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase Naresh Chintalcheru Who is Naresh Technology professional for 18+ years Currently, Technical Architect at Cars.com Lecturer
More informationReaktive Anwendungen mit RxJava. Dr. Michael Menzel
Reaktive Anwendungen mit RxJava Dr. Michael Menzel DIGITALIZATION DIGITALIZATION DIGITALIZATION DIGITALIZATION REACTIVE ARCHITECTURES How can we build highly interactive (responsive) systems, which are
More informationCSE332: Data Abstractions Lecture 22: Shared-Memory Concurrency and Mutual Exclusion. Tyler Robison Summer 2010
CSE332: Data Abstractions Lecture 22: Shared-Memory Concurrency and Mutual Exclusion Tyler Robison Summer 2010 1 Toward sharing resources (memory) So far we ve looked at parallel algorithms using fork-join
More informationLecture 11: Recursion (hard)
Lecture 11: Recursion (hard) Recap/finish: stutter an integer 348 > 334488 We added the base case So how do we deal with larger numbers how can we split them up? We need to split into smaller chunks Since
More informationCS121/IS223. Object Reference Variables. Dr Olly Gotel
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors CS121/IS223
More informationAndroid/Java Lightning Tutorial JULY 30, 2018
Android/Java Lightning Tutorial JULY 30, 2018 Java Android uses java as primary language Resource : https://github.mit.edu/6178-2017/lec1 Online Tutorial : https://docs.oracle.com/javase/tutorial/java/nutsandbolts/inde
More informationSoftware Engineering Large Practical: Preferences, storage, and testing
Software Engineering Large Practical: Preferences, storage, and testing Stephen Gilmore (Stephen.Gilmore@ed.ac.uk) School of Informatics November 9, 2016 Contents A simple counter activity Preferences
More informationRules and syntax for inheritance. The boring stuff
Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Type Inference Some statically typed languages, like ML (and to a lesser extent Scala), offer alternative
More informationUMBC CMSC 331 Final Exam
UMBC CMSC 331 Final Exam Name: UMBC Username: You have two hours to complete this closed book exam. We reserve the right to assign partial credit, and to deduct points for answers that are needlessly wordy
More informationReactive Programming with Vert.x
Reactive Programming with Vert.x Embrace asynchronous to build responsive systems Clement Escoffier Principal Software Engineer, Red Hat Reactive The new gold rush? Reactive system, reactive manifesto,
More informationCSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)
CSE 413 Languages & Implementation Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) 1 Goals Representing programs as data Racket structs as a better way to represent
More informationNews. Programming Languages. Recap. Recap: Environments. Functions. of functions: Closures. CSE 130 : Fall Lecture 5: Functions and Datatypes
CSE 130 : Fall 2007 Programming Languages News PA deadlines shifted PA #2 now due 10/24 (next Wed) Lecture 5: Functions and Datatypes Ranjit Jhala UC San Diego Recap: Environments Phone book Variables
More informationIntro. Scheme Basics. scm> 5 5. scm>
Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if
More informationC# Language. CSE 409 Advanced Internet Technology
C# Language Today You will learn Building a basic class Value Types and Reference Types Understanding Namespaces and Assemblies Advanced Class Programming CSE 409 Advanced Internet Technology Building
More informationOpen Lecture Mobile Programming. Intro to Material Design
Open Lecture Mobile Programming Intro to Material Design Agenda Introduction to Material Design Applying a Material Theme Toolbar/Action Bar Navigation Drawer RecyclerView CardView Support Design Widgets/Tools
More informationshared objects monitors run() Runnable start()
Thread Lecture 18 Threads A thread is a smallest unit of execution Each thread has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at
More information1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4. Epic Test Review 5 Epic Test Review 6 Epic Test Review 7 Epic Test Review 8
Epic Test Review 1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4 Write a line of code that outputs the phase Hello World to the console without creating a new line character. System.out.print(
More informationEmbedded Systems Programming - PA8001
Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 9 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering
More informationProgramming Languages
CSE 130 : Winter 2009 Programming Languages News PA 2 out, and due Mon 1/26 5pm Lecture 5: Functions and Datatypes t UC San Diego Recap: Environments Phone book Variables = names Values = phone number
More informationCS312: Programming Languages. Lecture 21: JavaScript
CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig Thomas Dillig, CS312: Programming Languages Lecture 21: JavaScript 1/25 Why Discuss JavaScript? JavaScript is very widely used and growing
More informationWhy Discuss JavaScript? CS312: Programming Languages. Lecture 21: JavaScript. JavaScript Target. What s a Scripting Language?
Why Discuss JavaScript? CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig JavaScript is very widely used and growing Any AJAX application heavily relies on JavaScript JavaScript also has
More informationD Programming Language
Group 14 Muazam Ali Anil Ozdemir D Programming Language Introduction and Why D? It doesn t come with a religion this is written somewhere along the overview of D programming language. If you actually take
More informationLesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014
Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class
More informationProgramming Without a Call Stack: Event-driven Architectures
Programming Without a Call Stack: Event-driven Architectures Gregor Hohpe Google www.eaipatterns.com Gregor Hohpe Programming Without a Call Stack: Event-driven Architectures Slide 1 About Me Distributed
More informationAndroid User Interface Overview. Most of the material in this sec7on comes from h8p://developer.android.com/guide/topics/ui/index.
Android User Interface Overview Most of the material in this sec7on comes from h8p://developer.android.com/guide/topics/ui/index.html Android User Interface User interface built using views and viewgroup
More informationChapter 1 Getting Started
Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different
More informationPIC 10A Objects/Classes
PIC 10A Objects/Classes Ernest Ryu UCLA Mathematics Last edited: November 13, 2017 User-defined types In C++, we can define our own custom types. Object is synonymous to variable, and class is synonymous
More informationArray. Prepared By - Rifat Shahriyar
Java More Details Array 2 Arrays A group of variables containing values that all have the same type Arrays are fixed length entities In Java, arrays are objects, so they are considered reference types
More informationToday. Book-keeping. Inheritance. Subscribe to sipb-iap-java-students. Slides and code at Interfaces.
Today Book-keeping Inheritance Subscribe to sipb-iap-java-students Interfaces Slides and code at http://sipb.mit.edu/iap/java/ The Object class Problem set 1 released 1 2 So far... Inheritance Basic objects,
More informationEMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State
EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Saving State THE PROBLEM How to save the state (of a UI, for instance) so that it survives even when the application is closed/killed The state should
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)
More informationIslamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.
Islamic University of Gaza Faculty of Engineering Computer Engineering Department Mobile Computing ECOM 5341 By Eng. Wafaa Audah July 2013 1 Launch activitits, implicit intents, data passing & start activity
More informationPENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE)
PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE) Network Connection Web Service K Candra Brata andra.course@gmail.com Mobille App Lab 2015-2016 Network Connection http://developer.android.com/training/basics/network-ops/connecting.html
More informationMessage Passing & APIs
CS 160 User Interface Design Message Passing & APIs Section 05 // September 25th, 2015 Tricia Fu // OH Monday 9:30-10:30am // triciasfu@berkeley.edu Agenda 1 Administrivia 2 Brainstorm Discussion 3 Message
More informationExternal Services. CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion
External Services CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion 1 External Services Viewing websites Location- and map-based functionality
More informationApplied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)
Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) In this exercise, we will create a simple Android application that uses IBM Bluemix Cloudant NoSQL DB. The application
More informationC++ Important Questions with Answers
1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children
More informationCh. 12: Operator Overloading
Ch. 12: Operator Overloading Operator overloading is just syntactic sugar, i.e. another way to make a function call: shift_left(42, 3); 42
More informationThe name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.
Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that
More informationWireless Vehicle Bus Adapter (WVA) Android Library Tutorial
Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Revision history 90001431-13 Revision Date Description A October 2014 Original release. B October 2017 Rebranded the document. Edited the document.
More informationIEMS 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 informationControl Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003
Control Flow COMS W1007 Introduction to Computer Science Christopher Conway 3 June 2003 Overflow from Last Time: Why Types? Assembly code is typeless. You can take any 32 bits in memory, say this is an
More informationThis is a talk given by me to the Northwest C++ Users Group on May 19, 2010.
This is a talk given by me to the Northwest C++ Users Group on May 19, 2010. 1 I like this picture because it clearly shows what is private and what is shared. In the message-passing system, threads operate
More informationAndroid. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license
Android Android Mobile operating system developed by Google A complete stack OS, framework A rich set of applications Email, calendar, browser, maps, text messaging, contacts, camera, dialer, music player,
More informationGetting Started With Feature Toggle in Java
Guide Getting Started With Feature Toggle in Java INTRO Feature toggles (also known as feature flags) are simple. You want to introduce new behavior in a Java application, but you re not ready to turn
More informationAdvanced Systems Programming
Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short
More informationAndroid Using Menus. Victor Matos Cleveland State University
8 Android Notes are based on: The Busy Coder's Guide to Android Development by Mark L. Murphy Copyright 2008-2009 CommonsWare, LLC. ISBN: 978-0-9816780-0-9 & Android Developers http://developer.android.com/index.html
More informationBasic GUI elements - exercises
Basic GUI elements - exercises https://developer.android.com/studio/index.html LIVE DEMO Please create a simple application, which will be used to calculate the area of basic geometric figures. To add
More informationBasic UI elements: Defining Activity UI in the code. Marco Ronchetti Università degli Studi di Trento
1 Basic UI elements: Defining Activity UI in the code Marco Ronchetti Università degli Studi di Trento UI Programmatically public class UIThroughCode extends Activity { LinearLayout llayout; TextView tview;
More informationCS 160: Interactive Programming
CS 160: Interactive Programming Professor John Canny 3/8/2006 1 Outline Callbacks and Delegates Multi-threaded programming Model-view controller 3/8/2006 2 Callbacks Your code Myclass data method1 method2
More informationCMSC131. Inheritance. Object. When we talked about Object, I mentioned that all Java classes are "built" on top of that.
CMSC131 Inheritance Object When we talked about Object, I mentioned that all Java classes are "built" on top of that. This came up when talking about the Java standard equals operator: boolean equals(object
More informationAndroid Programs Day 5
Android Programs Day 5 //Android Program to demonstrate the working of Options Menu. 1. Create a New Project. 2. Write the necessary codes in the MainActivity.java to create OptionMenu. 3. Add the oncreateoptionsmenu()
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2018 Lecture 7b Andrew Tolmach Portland State University 1994-2018 Dynamic Type Checking Static type checking offers the great advantage of catching errors early And
More informationOnline Learning Application
Online Learning Application Objective: It s a known fact that the Average screen sizes of our phones is increasing, thereby encouraging many to read and learn on the move. Keeping this trend in mind, you
More informationSoftware Practice 3 Today s lecture Today s Task Porting Android App. in real device
1 Software Practice 3 Today s lecture Today s Task Porting Android App. in real device Prof. Hwansoo Han T.A. Jeonghwan Park 43 INTENT 2 3 Android Intent An abstract description of a message Request actions
More informationOFFLINE MODE OF ANDROID
OFFLINE MODE OF ANDROID APPS @Ajit5ingh ABOUT ME new Presenter( Ajit Singh, github.com/ajitsing, www.singhajit.com, @Ajit5ingh ) AGENDA Why offline mode? What it takes to build an offline mode Architecture
More informationSpring MVC 4.x Spring 5 Web Reactive
Part 1 Spring MVC 4.x Spring 5 Web Reactive Rossen Stoyanchev @rstoya05 Spring MVC 4.3 Reactive programming for Java devs Spring 5 Web Reactive Shortcut Annotations @RequestMapping @GetMapping @PostMapping
More informationThe Rise and Rise of Dataflow in the JavaVerse
The Rise and Rise of Dataflow in the JavaVerse @russel_winder russel@winder.org.uk https://www.russel.org.uk 1 The Plan for the Session Stuff. More stuff. Even more stuff possibly. Summary and conclusions
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming t ::= x x. t t t Call-by-value big-step Operational Semantics terms variable v ::= values abstraction x.
More informationLab 10: Sockets 12:00 PM, Apr 4, 2018
CS18 Integrated Introduction to Computer Science Fisler, Nelson Lab 10: Sockets 12:00 PM, Apr 4, 2018 Contents 1 The Client-Server Model 1 1.1 Constructing Java Sockets.................................
More information