REALM.IO NOSQL FOR MOBILE

Size: px
Start display at page:

Download "REALM.IO NOSQL FOR MOBILE"

Transcription

1 REALM.IO NOSQL FOR MOBILE

2 Mitchell Tilbrook Mobile Seatfrog Android, ios, Xamarin Recording & Editing for 7+ meet-ups ANZCoders: ANZCoders Android Sydney:

3 WHY?

4 1. Not always FAST 2. Threading is hard 3. Writes can block reads 4. Stringly typed schema 5. Object Mapping 6. Migrations

5

6 DATA MODELS

7 ANDROID MODELS public class Person extends RealmObject { private String name; private int age; // Getters and Setters OR

8 ANDROID INTERFACE public class Person implements RealmModel { private String name; private int age; // Getters and Setters // with RealmObject person.isvalid(); // With RealmModel RealmObject.isValid(user);

9 PROPERTY ATTRIBUTES

10 ANDROID PRIMARY KEY public class Person extends RealmObject private int id; private String name; private Int age; // Getters and Setters

11 REQUIRED public class Person extends RealmObject private String private Int age; // Getters and Setters

12 INDEXING public class Person extends RealmObject private String name; private int age; // Getters and Setters

13 DON'T PERSIST PROPERTIES public class User extends RealmObject { private String private String sessiontoken; // Getters and Setters

14 CUSTOM MODEL LOGIC public class Person extends RealmObject { private String name; private int age; public String getname() { return name.touppercase(); public String getnameandage() { return name + " is " + age + " old"; public void setname(string newname) { name = newname.touppercase();

15 QUERYING // Gets All the Users RealmQuery<Person> query = realm.where(person.class);

16 QUERYING // Gets All the Users RealmQuery<Person> query = realm.where(person.class); // Add query conditions: query.equalto("name", "John"); query.or().equalto("name", "Peter"); // Execute the query: RealmResults<Person> result1 = query.findall(); // Or alternatively do the same all at once (the "Fluent interface"): RealmResults<Person> result2 = realm.where(person.class).equalto("name", "John").or().equalTo("name", "Peter").findAll();

17 MANY-TO-ONE public class Person extends RealmObject { //... private Dog dog; // Getters and Setters

18 MANY-TO-MANY public class Person extends RealmObject { //... private RealmList<Dog> dogs; // Getters and Setters

19 RECURSIVE RELATIONSHIPS public class Person extends RealmObject { public String name; public RealmList<Person> friends; // Other fields public class Person extends RealmObject { public String name; public Person father; // Other fields

20 LINKED QUERIES public class Person extends RealmObject { private String id; private String name; private RealmList<Dog> dogs; // getters and setters public class Dog extends RealmObject { private String id; private String name; private String color; // getters and setters

21 LINKED QUERIES

22 LINKED QUERIES RealmResults<Person> persons = realm.where(person.class).equalto("dogs.color", "Brown").findAll();

23 QUERYING IS LAZY RealmResults<Person> result = realm.where(person.class).findall();

24 READING LAZY DATA Person person = results.get(1); String name = person.getname();

25 ASYNC QUERYING private RealmChangeListener callback = new RealmChangeListener() public void onchange(realmresults<person> results) { // called once the query complete and on every update ; public void onstart() { RealmResults<Person> result = realm.where(person.class).findallasync(); result.addchangelistener(callback);

26 AUTO UPDATING RealmResults<Person> peoples = realm.where(person.class).findall(); peoples.size(); // => 0 addrandomperson(); peoples.addchangelistener( results -> { // results and peoples point are both up to date results.size(); // => 1 peoples.size(); // => 1 );

27 CHANGE EVENTS BUBBLE RealmResults<Person> peoples = realm.where(person.class).findall(); peoples.addchangelistener( results -> { /*... */ ); realm.addchangelistener( results -> { /*... */ );

28 FINE GRAIN CHANGE LISTENERS

29 SAVING UNMANAGED OBJECTS Person obj = new Person(); obj.setid(42); obj.setname("fish"); // Obtain a Realm instance Realm realm = Realm.getDefaultInstance(); // Save to disk realm.begintransaction(); managedperson = realm.copytorealmorupdate(obj); realm.committransaction();

30 SAVING MANAGED OBJECTS // Obtain a Realm instance Realm realm = Realm.getDefaultInstance(); realm.begintransaction(); Person person = realm.createobject(person.class); person.setname("mitchell"); person.setage(27); realm.committransaction();

31 ROLLBACK FAILED TRANSACTIONS try { realm.begintransaction(); Person person = realm.createobject(person.class); person.setname("mitchell"); person.setage(27); realm.committransaction(); catch(exception ex) { // Rollback realm.canceltransaction();

32 RECOMMENDED TRANSACTION STYLE outerrealm.executetransaction(new Realm.Transaction() public void execute(realm realm) { Person person = realm.createobject(person.class); person.setname("mitchell"); person.setage(27); );

33 ASYNCHRONOUS TRANSACTIONS realm.executetransactionasync({ //..., new Realm.Transaction.OnSuccess() public void onsuccess() { // Transaction was a success., new Realm.Transaction.OnError() public void onerror(throwable error) { // Transaction failed and was automatically canceled. );

34 DELETE TRANSACTIONS realm.executetransaction(new Realm.Transaction() public void execute(realm realm) { person.getdog().deletefromrealm(); person.deletefromrealm(); );

35 AGGREGATION RealmResults<User> results = realm.where(user.class).findall(); long sum = results.sum("age").longvalue(); long min = results.min("age").longvalue(); long max = results.max("age").longvalue(); double average = results.average("age"); long matches = results.size();

36

37 ENCRYPTION // Totally not safe key val key = new byte[64]; new SecureRandom().nextBytes(key); val config = new RealmConfiguration.Builder().encryptionKey(key).build(); // Open the Realm with encryption enabled val realm = Realm.getInstance(config);

38 DATA MIGRATIONS

39 JUST DELETE IT RealmConfiguration config = new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build()

40 MIGRATIONS RealmConfiguration config = new RealmConfiguration.Builder().schemaVersion(2) // Must be bumped when the schema changes.migration(new MyMigration()) // Migration to run instead of throwing an exception.build()

41 MIGRATIONS RealmMigration migration = new RealmMigration() public void migrate(dynamicrealm realm, long oldversion, long newversion) { RealmSchema schema = realm.getschema(); if (oldversion == 0) { schema.create("person").addfield("name", String.class).addField("age", int.class); oldversion++; if (oldversion == 1) { schema.get("person").addfield("id", long.class, FieldAttribute.PRIMARY_KEY).addRealmObjectField("favoriteDog", schema.get("dog")).addrealmlistfield("dogs", schema.get("dog")); oldversion++;

42 REALM SETUP

43 ANDROID SETUP buildscript { repositories { jcenter() dependencies { classpath "io.realm:realm-gradle-plugin:2.0.0" apply plugin: 'realm-android'

44 ANDROID INIT public class MyApplication extends Application public void oncreate() { super.oncreate(); Realm.init(this); RealmConfiguration config = new RealmConfiguration.Builder().build(); Realm.setDefaultConfiguration(config)

45 SWIFT & OBJECTIVE-C

46 REALM BROWSER

47

48 REALM MOBILE PLATFORM

49 REALM USER SEGREGATION

50 DRAWBACKS Thread confined* Large binary Connections need to be closed

51 ANDROID SIZE COST

52 IOS SIZE COST

53 INSPECT REALM ON ANDROID Realm.init(this); Stetho.initialize( Stetho.newInitializerBuilder(this).enableDumpapp( Stetho.defaultDumperPluginsProvider(this) ).enablewebkitinspector( RealmInspectorModulesProvider.builder(this).build() ).build());

54 ANDROID LIBRARY INTEGRATIONS JSON ( GSON, Moshi ) RxJava Retrofit

55 RXJAVA SUPPORT realm.where(person.class).findallasync().asobservable();

56 RXJAVA REALM SCHEDULER fun Schedulers.newRealmThread(): Scheduler { val backgroundthread = HandlerThread( "RxRealm-BackgroundThread", THREAD_PRIORITY_BACKGROUND ) backgroundthread.start() val backgroundlooper = backgroundthread.looper return AndroidSchedulers.from(backgroundLooper) compile "io.reactivex:rxandroid:$rx_android_version"

57 PRODUCTION READY?

58

59 YES

60 QUESTIONS?

61 Mitchell " GITHUB.COM/MARUKAMI

Realm Mobile Database. Knoxville CocoaHeads April 2017 by Gavin Wiggins

Realm Mobile Database. Knoxville CocoaHeads April 2017 by Gavin Wiggins Realm Mobile Database Knoxville CocoaHeads April 2017 by Gavin Wiggins What is the Realm Mobile Database? 2 Free open-source mobile database with support for Java, Objective-C, Javascript, Swift, and Xamarin

More information

Android About.me/DavidCorrado Mobile Meetup Organizer

Android 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 information

Data binding. in a Kotlin world. Lisa

Data 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 information

CONVERTIGO SDK THE ULTIMATE CLIENT MOBILE API FOR CONVERTIGO MBAAS

CONVERTIGO SDK THE ULTIMATE CLIENT MOBILE API FOR CONVERTIGO MBAAS CONVERTIGO SDK THE ULTIMATE CLIENT MOBILE API FOR CONVERTIGO MBAAS WHY CONVERTIGO SDK? Abstracts Mobile app developer from protocol complexity Gives simple cross-platform API to access Convertigo MBaaS

More information

Writing Browser Extensions in Kotlin. Kirill Rakhman busradar.com

Writing Browser Extensions in Kotlin. Kirill Rakhman busradar.com Writing Browser Extensions in Kotlin Kirill Rakhman (@Cypressious) busradar.com KotlinJS No longer expiremental since 1.1.0 Can run anywhere where JS runs Can call JS Websites NodeJS Browser Extensions

More information

Android Best Practices

Android Best Practices Android Best Practices Agenda Introduction The clean architecture Testing Support library Libraries we can depend on What's next Introduction Introduction Android Studio Gradle Material Design Lollipop

More information

Kotlin, Start? Start! (pluu) Android Developer GDG Korea Android Organizer

Kotlin, 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 information

SHIFTLEFT OCULAR THE CODE PROPERTY GRAPH

SHIFTLEFT OCULAR THE CODE PROPERTY GRAPH SHIFTLEFT OCULAR INTRODUCTION ShiftLeft Ocular offers code auditors the full range of capabilities of ShiftLeft s best-in-class static code analysis 1, ShiftLeft Inspect. Ocular enables code auditors to

More information

Software Agent Computing. Agent Mobility

Software Agent Computing. Agent Mobility Software Agent Computing Agent Mobility Planning mobility roadmap Agent mobility = to migrate or to make a copy (clone) itself across one or multiple network hosts Support for mobility in JADE: a set of

More information

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial

Wireless 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 information

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com 70-483 MCSA Universal Windows Platform A Success Guide to Prepare- Programming in C# edusum.com Table of Contents Introduction to 70-483 Exam on Programming in C#... 2 Microsoft 70-483 Certification Details:...

More information

Advanced Dependency Management with Gradle. Benjamin Muschko, Gradle Inc.

Advanced Dependency Management with Gradle. Benjamin Muschko, Gradle Inc. Advanced Dependency Management with Gradle Benjamin Muschko, Gradle Inc. Custom requirements in complex builds Dependency management requires conscious decisions and trade- offs Transitive dependencies

More information

Classes and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable?

Classes and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable? Peer Instruction 8 Classes and Objects How can multiple methods within a Java class read and write the same variable? A. Allow one method to reference a local variable of the other B. Declare a variable

More information

Architecture using Functional Programming concepts < + >

Architecture 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 information

RxJava. and WHY you should care. Jeroen Tietema

RxJava. 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 information

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Familiarize yourself with all of Kotlin s features with this in-depth guide Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Copyright 2017 Packt Publishing First

More information

You can do better with Kotlin. Svetlana Isakova

You can do better with Kotlin. Svetlana Isakova You can do better with Kotlin Svetlana Isakova Kotlin Programming Language - modern - pragmatic - Android-friendly Official on Android Not only Android Pragmatic - tooling - Java interop From has good

More information

Spring Interview Questions

Spring Interview Questions Spring Interview Questions By Srinivas Short description: Spring Interview Questions for the Developers. @2016 Attune World Wide All right reserved. www.attuneww.com Contents Contents 1. Preface 1.1. About

More information

Day 3. COMP 1006/1406A Summer M. Jason Hinek Carleton University

Day 3. COMP 1006/1406A Summer M. Jason Hinek Carleton University Day 3 COMP 1006/1406A Summer 2016 M. Jason Hinek Carleton University today s agenda assignments 1 was due before class 2 is posted (be sure to read early!) a quick look back testing test cases for arrays

More information

Hello! I AM ZARAH. I am an Android developer for Domain.com.au

Hello! I AM ZARAH. I am an Android developer for Domain.com.au TOOLS OF THE TRADE Hello! I AM ZARAH I am an Android developer for Domain.com.au THE KEY Know available tools THE KEY Know available tools There is no correct setup CODE FRAGMENTS FRAGMENT LIFECYCLE FragmentManager.enableDebugLogging(true);

More information

ConfigJSR and Friends. Mark Struberg, RISE GmbH, Apache Software Foundation, INSO TU Wien

ConfigJSR and Friends. Mark Struberg, RISE GmbH, Apache Software Foundation, INSO TU Wien ConfigJSR and Friends Mark Struberg, RISE GmbH, Apache Software Foundation, INSO TU Wien About me Mark Struberg 25++ years in the industry Apache Software Foundation member struberg [at] apache.org RISE

More information

Lecture 3. COMP1006/1406 (the Java course) Summer M. Jason Hinek Carleton University

Lecture 3. COMP1006/1406 (the Java course) Summer M. Jason Hinek Carleton University Lecture 3 COMP1006/1406 (the Java course) Summer 2014 M. Jason Hinek Carleton University today s agenda assignments 1 (graded) & 2 3 (available now) & 4 (tomorrow) a quick look back primitive data types

More information

CS 1331 Exam 1. Fall Failure to properly fill in the information on this page will result in a deduction of up to 5 points from your exam score.

CS 1331 Exam 1. Fall Failure to properly fill in the information on this page will result in a deduction of up to 5 points from your exam score. CS 1331 Exam 1 Fall 2016 Name (print clearly): GT account (gpburdell1, msmith3, etc): Section (e.g., B1): Signature: Failure to properly fill in the information on this page will result in a deduction

More information

NoSQL & Firebase. SWE 432, Fall Web Application Development

NoSQL & Firebase. SWE 432, Fall Web Application Development NoSQL & Firebase SWE 432, Fall 2018 Web Application Development Review: Nouns vs. Verbs URIs should hierarchically identify nouns describing resources that exist Verbs describing actions that can be taken

More information

Chris Guzman. Developer chris-guzman.com

Chris Guzman. Developer  chris-guzman.com WebSocket to me! Chris Guzman Developer Advocate @ Nexmo @speaktochris chris-guzman.com Before... Before... (A few years ago) HTTP Polling TCP/IP Sockets WebSockets /webˈsäkəts/ bi-directional realtime

More information

Kotlin for Android Developers

Kotlin 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 information

Kotlin for Android Developers

Kotlin 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 information

db4o: Part 2 Configuration and Tuning, Distribution and Replication Schema Evolution: Refactoring, Inheritance Evolution Callbacks and Translators

db4o: Part 2 Configuration and Tuning, Distribution and Replication Schema Evolution: Refactoring, Inheritance Evolution Callbacks and Translators Object-Oriented Oi t ddatabases db4o: Part 2 Configuration and Tuning, Distribution and Replication Schema Evolution: Refactoring, Inheritance Evolution Callbacks and Translators Summary: db4o Part 1 Managing

More information

Spring MVC 4.x Spring 5 Web Reactive

Spring 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 information

USAS-R. Status, Current Design & Implications Technical. Fall OEDSA Dave Smith; SSDT

USAS-R. Status, Current Design & Implications Technical. Fall OEDSA Dave Smith; SSDT USAS-R Status, Current Design & Implications Technical Fall OEDSA 2010 Dave Smith; SSDT Disclaimer Still early in Development Cycle Not fully committed to some choices: Database Platforms, likely: Oracle

More information

UI-Testing, Reactive Programming and some Kotlin.

UI-Testing, Reactive Programming and some Kotlin. UI-Testing, Reactive Programming and some Kotlin anders.froberg@liu.se 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

More information

About 1. Chapter 1: Getting started with dagger-2 2. Remarks 2. Versions 2. Examples 2. Description and Setup 2. Basic Example 3.

About 1. Chapter 1: Getting started with dagger-2 2. Remarks 2. Versions 2. Examples 2. Description and Setup 2. Basic Example 3. dagger-2 #dagger-2 Table of Contents About 1 Chapter 1: Getting started with dagger-2 2 Remarks 2 Versions 2 Examples 2 Description and Setup 2 Basic Example 3 Android example 4 Learn Dagger2 with simple

More information

Building Vaadin Applications With Pure Scala

Building Vaadin Applications With Pure Scala Building Vaadin Applications With Pure Scala Henri Kerola Vaadin Expert at Vaadin Ltd ? Vaadin is a UI framework for rich web applications java html Internet Explorer Chrome Firefox Safari Opera

More information

MySQL 8.0: Atomic DDLs Implementation and Impact

MySQL 8.0: Atomic DDLs Implementation and Impact MySQL 8.0: Atomic DDLs Implementation and Impact Ståle Deraas, Senior Development Manager Oracle, MySQL 26 Sept 2017 Copyright 2017, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor

More information

Notes on Chapter Three

Notes on Chapter Three Notes on Chapter Three Methods 1. A Method is a named block of code that can be executed by using the method name. When the code in the method has completed it will return to the place it was called in

More information

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT g/sync-adapters/index.

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT   g/sync-adapters/index. CS371m - Mobile Computing Persistence - Web Based Storage CHECK OUT https://developer.android.com/trainin g/sync-adapters/index.html The Cloud. 2 Backend No clear definition of backend front end - user

More information

SQLite. 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 6: Working with Databases. What is a Database Server. Advantages of SQLite

SQLite. 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 6: Working with Databases. What is a Database Server. Advantages of SQLite SQLite 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 6: Working with Databases Dr Dimitris C. Dracopoulos SQLite is a tiny yet powerful database engine. Besides Android, it can be found in: Apple iphone

More information

2 years without Java or reload Android development with Kotlin.

2 years without Java or reload Android development with Kotlin. 2 years without Java or reload Android development with Kotlin KirillRozov@EPAM Who am I? Team Lead in EPAM More than 6 years in Android development Kotlin Evangelist Co-organizer GDG Minsk, Android Academy

More information

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Object-Relational Mapping Software Architecture ORM Problems ORM Solutions Demo Software Architecture Part 1 Architecture Separation of Concerns A design principle that comprises

More information

Lecture 07: Object Encapsulation & References AITI Nigeria Summer 2012 University of Lagos.

Lecture 07: Object Encapsulation & References AITI Nigeria Summer 2012 University of Lagos. Accelerating Information Technology Innovation http://aiti.mit.edu Lecture 07: Object Encapsulation & References AITI Nigeria Summer 2012 University of Lagos. Data Field Encapsulation Sometimes we want

More information

Message Passing & APIs

Message 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 information

Distributed Systems Recitation 1. Tamim Jabban

Distributed Systems Recitation 1. Tamim Jabban 15-440 Distributed Systems Recitation 1 Tamim Jabban Office Hours Office 1004 Sunday, Tuesday: 9:30-11:59 AM Appointment: send an e-mail Open door policy Java: Object Oriented Programming A programming

More information

CS 1331 Exam 1 ANSWER KEY

CS 1331 Exam 1 ANSWER KEY CS 1331 Exam 1 Fall 2016 ANSWER KEY Failure to properly fill in the information on this page will result in a deduction of up to 5 points from your exam score. Signing signifies you are aware of and in

More information

2/26/2017. DataFrame. The input data can be queried by using

2/26/2017. DataFrame. The input data can be queried by using Spark SQL is the Spark component for structured data processing It provides a programming abstraction called s and can act as distributed SQL query engine The input data can be queried by using Ad-hoc

More information

THE MYSTERY OF THE 20GB LOG FILE. Instructor: Prasun Dewan (FB 150,

THE MYSTERY OF THE 20GB LOG FILE. Instructor: Prasun Dewan (FB 150, THE MYSTERY OF THE 20GB LOG FILE Instructor: Prasun Dewan (FB 150, dewan@unc.edu) PROBLEM? The server the grader is running on ran out of disk space so I'm currently compressing the 20GB of debug log files

More information

What is an algorithm?

What is an algorithm? Announcements CS 142 Objects/Classes in C++ Program 7 has been assigned - due Sunday, April 19 th by 11:55pm 4/16/2015 CS 142: Object-Oriented Programming 2 Definitions A class is a struct plus some associated

More information

What is an algorithm?

What is an algorithm? Announcements CS 142 Objects/Classes in C++ Program 7 has been assigned - due Sunday, Nov. 23 rd by 11:55pm 2 Definitions A class is a struct plus some associated functions that act upon variables of that

More information

CIT Special final examination

CIT Special final examination CIT 590-2016 Special final examination Name (please write your official name) PennID Number Note that your PennID number is the 8 digit bold number on your penn card. DO NOT START WRITING (aside from name

More information

Getter and Setter Methods

Getter and Setter Methods Example 1 namespace ConsoleApplication14 public class Student public int ID; public string Name; public int Passmark = 50; class Program static void Main(string[] args) Student c1 = new Student(); Console.WriteLine("please..enter

More information

IS-A is a way of saying: This object is a type of that object. Let us see how the extends keyword is used to achieve inheritance.

IS-A is a way of saying: This object is a type of that object. Let us see how the extends keyword is used to achieve inheritance. PART 17 17. Inheritance Inheritance can be defined as the process where one object acquires the properties of another. With the use of inheritance the information is made manageable in a hierarchical order.

More information

1Z0-804 Q&As. Java SE 7 Programmer II Exam. Pass Oracle 1Z0-804 Exam with 100% Guarantee

1Z0-804 Q&As. Java SE 7 Programmer II Exam. Pass Oracle 1Z0-804 Exam with 100% Guarantee 1Z0-804 Q&As Java SE 7 Programmer II Exam Pass Oracle 1Z0-804 Exam with 100% Guarantee Free Download Real Questions & Answers PDF and VCE file from: 100% Passing Guarantee 100% Money Back Assurance Following

More information

ObjectRiver. Metadata Compilers. WebSockets. JavaOne 2014 Steven Lemmo

ObjectRiver. Metadata Compilers. WebSockets. JavaOne 2014 Steven Lemmo ObjectRiver Metadata Compilers Programmatic WebSockets JavaOne 2014 Steven Lemmo 1 Sockets for the Web Finally! Before the Web ( Internal applications behind the firewall. Sockets RPC ( Sun ONC/RPC ) DCE

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 03: Creating Classes MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Creating Classes 2 Constructors and Object Initialization Static versus non-static fields/methods Encapsulation

More information

CMPSCI 187: Programming With Data Structures. Review for First Midterm 9 October 2011

CMPSCI 187: Programming With Data Structures. Review for First Midterm 9 October 2011 CMPSCI 187: Programming With Data Structures Review for First Midterm 9 October 2011 Format Two hours, closed-book, no calculators, computers, etc. Question types as on practice exam: Java Concepts (10

More information

Android and Flux: It s a match! Attila Polacsek Senior Android Developer Supercharge

Android and Flux: It s a match! Attila Polacsek Senior Android Developer Supercharge Android and Flux: It s a match! Attila Polacsek Senior Android Developer Supercharge INTRO INTRO WHAT IS FLUX? WHAT IS FLUX? What is FLUX? Application architecture Pattern, not a framework Created by Facebook

More information

Rest Client for MicroProfile. John D. Ament

Rest Client for MicroProfile. John D. Ament Rest Client for MicroProfile John D. Ament 1.0-T9, December 05, 2017 Table of Contents Microprofile Rest Client..................................................................... 2 MicroProfile Rest

More information

Simple Component Writer's Guide

Simple Component Writer's Guide Simple Component Writer's Guide Note that most of the following also applies to writing ordinary libraries for Simple. The preferred language to write Simple components is Java, although it should be possible

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 03: Creating Classes MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Creating Classes 2 Constructors and Object Initialization Static versus non-static fields/methods Encapsulation

More information

Enterprise Features & Requirements Analysis For EJB3 JPA & POJO Persistence. CocoBase Pure POJO

Enterprise Features & Requirements Analysis For EJB3 JPA & POJO Persistence. CocoBase Pure POJO CocoBase Pure POJO Product Information V5 Enterprise Features & Requirements Analysis For EJB3 JPA & POJO Persistence CocoBase PURE POJO Uniquely Provides BEST IN INDUSTRY Support For The Full Range Of

More information

Software LEIC/LETI. Lecture 15

Software LEIC/LETI. Lecture 15 Software Engineering @ LEIC/LETI Lecture 15 Last Lecture Software Architecture Architectural Patterns Application Architectures Software Architecture in the Project Today Enterprise Application Architecture

More information

Distributed Systems Recitation 1. Tamim Jabban

Distributed Systems Recitation 1. Tamim Jabban 15-440 Distributed Systems Recitation 1 Tamim Jabban Office Hours Office 1004 Tuesday: 9:30-11:59 AM Thursday: 10:30-11:59 AM Appointment: send an e-mail Open door policy Java: Object Oriented Programming

More information

CSE 344 Final Review. August 16 th

CSE 344 Final Review. August 16 th CSE 344 Final Review August 16 th Final In class on Friday One sheet of notes, front and back cost formulas also provided Practice exam on web site Good luck! Primary Topics Parallel DBs parallel join

More information

Content Provider. Introduction 01/03/2016. Session objectives. Content providers. Android programming course. Introduction. Built-in Content Provider

Content Provider. Introduction 01/03/2016. Session objectives. Content providers. Android programming course. Introduction. Built-in Content Provider Android programming course Session objectives Introduction Built-in Custom By Võ Văn Hải Faculty of Information Technologies 2 Content providers Introduction Content providers manage access to a structured

More information

Spring Lecture 5 Lecturer: Omid Jafarinezhad

Spring Lecture 5 Lecturer: Omid Jafarinezhad Mobile Programming Sharif University of Technology Spring 2016 - Lecture 5 Lecturer: Omid Jafarinezhad Storage Options Android provides several options for you to save persistent application data. The

More information

Kotlin for Android developers

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 information

Distributed Systems Project 4 Assigned: Friday March 20 Due: Friday April 3, 11:59pm

Distributed Systems Project 4 Assigned: Friday March 20 Due: Friday April 3, 11:59pm 95-702 Distributed Systems Project 4 Assigned: Friday March 20 Due: Friday April 3, 11:59pm Project Topics: Java RMI and a distributed, Mobile to Cloud application This project has 2 tasks. Task 1 is a

More information

ARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV

ARCHETYPE 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 information

Mobile Computing Practice # 2d Android Applications Local DB

Mobile Computing Practice # 2d Android Applications Local DB Mobile Computing Practice # 2d Android Applications Local DB In this installment we will add persistent storage to the restaurants application. For that, we will create a database with a table for holding

More information

Java Concurrency in practice Chapter 9 GUI Applications

Java Concurrency in practice Chapter 9 GUI Applications Java Concurrency in practice Chapter 9 GUI Applications INF329 Spring 2007 Presented by Stian and Eirik 1 Chapter 9 GUI Applications GUI applications have their own peculiar threading issues To maintain

More information

CS100J Prelim I, 29 Sept. 2003

CS100J Prelim I, 29 Sept. 2003 CS100J Prelim I, 29 Sept. 2003 CORNELL NETID NAME (PRINT LEGIBLY!) (last, first) Question 0 out of 02 This 90-minute exam has 6 questions worth a total of 100 points. Question 1 out of 20 We suggest that

More information

Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Remote Procedure Calls

Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Remote Procedure Calls Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Wintersemester 16/17 Remote Procedure Calls Patrick Schäfer patrick.schaefer@hu-berlin.de Marc Bux buxmarcn@informatik.hu-berlin.de

More information

TDDD49/725G66 C# and.net Programming. (Lecture 02)

TDDD49/725G66 C# and.net Programming. (Lecture 02) TDDD49/725G66 C# and.net Programming (Lecture 02) http://www.camedin.com/live/b651b7af532c43b6abf458e083a9cc27 Class Creature public int LifeSpan; Class Human : Creature Public void walk(int meters)

More information

Cross-compiling C++ to JavaScript. Challenges in porting the join.me common library to HTML5

Cross-compiling C++ to JavaScript. Challenges in porting the join.me common library to HTML5 Cross-compiling C++ to JavaScript Challenges in porting the join.me common library to HTML5 JUNE 24, 2015 LEVENTE HUNYADI join.me at a glance 2 join.me at a glance 3 join.me characteristics Application

More information

MySQL & NoSQL: The Best of Both Worlds

MySQL & NoSQL: The Best of Both Worlds MySQL & NoSQL: The Best of Both Worlds Mario Beck Principal Sales Consultant MySQL mario.beck@oracle.com 1 Copyright 2012, Oracle and/or its affiliates. All rights Safe Harbour Statement The following

More information

An Android Studio SQLite Database Tutorial

An Android Studio SQLite Database Tutorial An Android Studio SQLite Database Tutorial Previous Table of Contents Next An Android Studio TableLayout and TableRow Tutorial Understanding Android Content Providers in Android Studio Purchase the fully

More information

Yann

Yann Scala Who am I? Yann Simon @simon_yann Why Scala? Fear to lose job? Java can be pain #1 public String createinvoicename( Date invoicedate, String invoiceid, String userid, String firmid, boolean directinvoice,

More information

Event Handling Java 7

Event Handling Java 7 Event Handling Java 7 Waterford Institute of Technology September 25, 2014 John Fitzgerald Waterford Institute of Technology, Event Handling Java 7 1/24 Inheritance Inheritance v Interface Inheritance

More information

CS304 Object Oriented Programming Final Term

CS304 Object Oriented Programming Final Term 1. Which of the following is the way to extract common behaviour and attributes from the given classes and make a separate class of those common behaviours and attributes? Generalization (pg 29) Sub-typing

More information

A Performance Tale. The evolution of binding in JavaFX. Robert Field Brian Goetz Sun Microsystems, Inc.

A Performance Tale. The evolution of binding in JavaFX. Robert Field Brian Goetz Sun Microsystems, Inc. A Performance Tale The evolution of binding in JavaFX Robert Field Brian Goetz Sun Microsystems, Inc. Overview This talk will chronicle our ongoing work on making JavaFX Script not only powerful and fun

More information

Mobile Application Development

Mobile Application Development Mobile Application Development donation-web api { method: 'GET', path: '/api/candidates', config: CandidatesApi.find, { method: 'GET', path: '/api/candidates/{id', config: CandidatesApi.findOne, { method:

More information

Advanced MEIC. (Lesson #18)

Advanced MEIC. (Lesson #18) Advanced Programming @ MEIC (Lesson #18) Last class Data races Java Memory Model No out-of-thin-air values Data-race free programs behave as expected Today Finish with the Java Memory Model Introduction

More information

Monitoring and Managing Computer Resource Usage on OSGi Frameworks

Monitoring and Managing Computer Resource Usage on OSGi Frameworks Monitoring and Managing Computer Resource Usage on OSGi Frameworks Ikuo YAMASAKI Research Engineer NTT Cyber Solution Laboratories Background: Service Aggregation Platform Operation Center and Home Service

More information

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh System Architecture re of Windows Store Apps Rainer Stropek software architects gmbh Windows 8 System Architecture Mail Web Twitter rainer@timecockpit.comcom http://www.timecockpit.com @rstropek Saves

More information

DROIDS ON FIRE. Adrián

DROIDS ON FIRE. Adrián DROIDS ON FIRE Adrián Catalán @ykro https://goo.gl/ ige2vk Developer experience matters Cross-platform Integrated Getting Started with Firebase http://github.com /ykro/wikitaco App.java @Override

More information

Java Classes, Inheritance, and Interfaces

Java Classes, Inheritance, and Interfaces Java Classes, Inheritance, and Interfaces Introduction Classes are a foundational element in Java. Everything in Java is contained in a class. Classes are used to create Objects which contain the functionality

More information

Lambda Expressions and Java 8 Streams. Jan Trienes, adapted by Th. Dorssers, Pieter van den Hombergh. Contents of this talk.

Lambda Expressions and Java 8 Streams. Jan Trienes, adapted by Th. Dorssers, Pieter van den Hombergh. Contents of this talk. Java 8 s and Java 8 van den Hombergh Fontys Hogeschool voor Techniek en Logistiek February 23, 2017 and /FHTenL s and Java 8 February 23, 2017 1/28 talk Expression and Internal/External Iteration Java

More information

CISC-124. Dog.java looks like this. I have added some explanatory comments in the code, and more explanation after the code listing.

CISC-124. Dog.java looks like this. I have added some explanatory comments in the code, and more explanation after the code listing. CISC-124 20180115 20180116 20180118 We continued our introductory exploration of Java and object-oriented programming by looking at a program that uses two classes. We created a Java file Dog.java and

More information

Programming Techniques Laboratory 1 OOP Principles

Programming Techniques Laboratory 1 OOP Principles Programming Techniques Laboratory 1 OOP Principles Finance Application Purpose Develop an application that allows you to query different types of company considering the following filters: Name City Identification

More information

EF6 - Version: 1. Entity Framework 6

EF6 - Version: 1. Entity Framework 6 EF6 - Version: 1 Entity Framework 6 Entity Framework 6 EF6 - Version: 1 4 days Course Description: Entity Framework is the new ORM and data access technology introduced by Microsoft. Entity framework provides

More information

Apache Tamaya Configuring your Containers...

Apache Tamaya Configuring your Containers... Apache Tamaya Configuring your Containers... BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH About Me Anatole Tresch Principal Consultant,

More information

Pro JPA 2. Mastering the Java Persistence API. Apress* Mike Keith and Merrick Schnicariol

Pro JPA 2. Mastering the Java Persistence API. Apress* Mike Keith and Merrick Schnicariol Pro JPA 2 Mastering the Java Persistence API Mike Keith and Merrick Schnicariol Apress* Gootents at a Glance g V Contents... ; v Foreword _ ^ Afooyt the Author XXj About the Technical Reviewer.. *....

More information

What s new in Grails 2.0?

What s new in Grails 2.0? What s new in Grails 2.0? About me Jeff Brown Grails Core Developer SpringSource/VMware Engineer jbrown@vmware.com @jeffscottbrown 2 The Year in Grails 3 The Year in Grails Grails 1.3 Plugins in Dependency

More information

The input data can be queried by using

The input data can be queried by using 1 Spark SQL is the Spark component for structured data processing It provides a programming abstraction called Dataset and can act as a distributed SQL query engine The input data can be queried by using

More information

Developing with the CityEngine SDK. Matthias Specht, Gert van Maren Esri R&D Center Zurich

Developing with the CityEngine SDK. Matthias Specht, Gert van Maren Esri R&D Center Zurich Developing with the CityEngine SDK Matthias Specht, Gert van Maren Esri R&D Center Zurich Agenda Examples (5 min) Introduction SDK (5 min) SDK architecture, code samples (10 min) Creating Apps!!! (30 min)

More information

Intel Multi-OS Engine. Vitaly Adobe

Intel Multi-OS Engine. Vitaly Adobe Intel Multi-OS Engine Vitaly Tsaplin @ Adobe Introduction Technology Overview Agenda Development Workflow Deep Dive: Java To Native Bindings Takeaways QA Introduction The challenge of modern cross-platform

More information

JVM Survival Guide. Hadi Hariri

JVM Survival Guide. Hadi Hariri JVM Survival Guide Hadi Hariri This talk For What For Who 20 years of Java The Sun and The Oracle Java The Language Java The Virtual Machine Java The Ecosystem The Community Community Driven Not Vendor-Driven

More information

Make sure you have the latest Hive trunk by running svn up in your Hive directory. More detailed instructions on downloading and setting up

Make sure you have the latest Hive trunk by running svn up in your Hive directory. More detailed instructions on downloading and setting up GenericUDAFCaseStudy Writing GenericUDAFs: A Tutorial User-Defined Aggregation Functions (UDAFs) are an excellent way to integrate advanced data-processing into Hive. Hive allows two varieties of UDAFs:

More information

Communicating with a Server

Communicating with a Server Communicating with a Server Client and Server Most mobile applications are no longer stand-alone Many of them now have a Cloud backend The Cloud Client-server communication Server Backend Database HTTP

More information

Lab 3. Accessing GSM Functions on an Android Smartphone

Lab 3. Accessing GSM Functions on an Android Smartphone Lab 3 Accessing GSM Functions on an Android Smartphone 1 Lab Overview 1.1 Goals The objective of this practical exercise is to create an application for a smartphone with the Android mobile operating system,

More information

Learn more about our research, discover data science, and find other great resources at:

Learn more about our research, discover data science, and find other great resources at: Learn more about our research, discover data science, and find other great resources at: http://www.dataminingapps.com Chapter 7 Delving Further into Object- Oriented Concepts Overview Annotations Overloading

More information