Scala on Android - Freie Universität · Scala on Android: problems and solutions » Motivation 3...
Transcript of Scala on Android - Freie Universität · Scala on Android: problems and solutions » Motivation 3...
Scala on AndroidProblems and solutions
Autor [email protected]
Betreuer Prof. Dr. Lutz Prechelt
Zweitgutachterin Prof. Dr. Margarita Esponda-Argüero
Inhaltsübersicht
1. Motivation
2. Kundenprojekt Liefery
3. Ausarbeitung
a. Interviews
b. Dokumentation
4. Fazit
Scala on Android: problems and solutions 1
Scala on Android: problems and solutions » Motivation 3
Motivation
● Kompatibilität zu Java
● Multiple Vererbung
● Operatorüberladung
● Option statt null
● Vollständige Objektorientierung“Jeder Wert ist ein Objekt”
Scala on Android: problems and solutions » Kundenprojekt Liefery 5
Startbildschirm Auftragsübersicht
Scala on Android: problems and solutions » Kundenprojekt Liefery 6
Detailansicht Navigationsassistenz
Scala on Android: problems and solutions » Kundenprojekt Liefery 7
Auftragsabwicklung & Kundeninteraktion
Scala on Android: problems and solutions » Ausarbeitung » Interviews 10
Identifizierte Probleme
● Build toolGradle, sbt oder Maven?
● Entwicklungsumgebung
● TestsUnit- & Integrationtests
● Library projectsaar & apklib
● VeröffentlichungsprozessPacken & signieren
● Community support
AusarbeitungDokumentation
Scala on Android: problems and solutions » Ausarbeitung » Dokumentation 11
Scala on Android: problems and solutions » Fazit 14
Fazit
+● Community
● Interviews
● Hello-Scala
-● GitHub-Interaktionen sind
häufig zu aufwendig
● Google-Ranking
● “Problems, solutions and advantages”
Danke!
Liefery Kurier AppGoogle PlayStore
http://tinyurl.com/liefery
Scala on AndroidThe comprehensive documentation
http://scala-on-android.taig.io
Scala on Android: problems and solutions » Anhang
Deklarierung einer Activity
class MyActivity extends Activity with ActionBar with NavigationDrawer with TabsLayout with Session { ...}
I
Scala on Android: problems and solutions » Anhang
View finden
class MyActivity extends Activity { TextView myView;
@Override public void onCreate(Bundle state) { super.onCreate(state);
setContentView(R.layout.my_layout);
myView = (TextView) findViewById( R.id.my_id );
myView.setText(“Hello Java”); }}
class MyActivity extends Activity { lazy val myView = findView( R.id.my_id )
override def onCreate(state: Bundle) { super.onCreate(state)
setContentView(R.layout.my_layout)
myView.setText(“Hello Scala”) }}
II
Scala on Android: problems and solutions » Anhang
Serialisierung
Bundle bundle = new Bundle()
boolean myBool = trueMyModel myModel = …
bundle.putBoolean(“myBool”, myBool)bundle.putParcelable( “myModel”, myModel)
...
boolean myBool = bundle.getBoolean( “myBool”)MyModel myModel = bundle.getParcelable( “myModel”)
val myBool = trueval myModel = …
new Bundle() .write(“myBool”, true) .write(“myModel”, myModel )
...
val myBool = bundle.read[Boolean]( “myBool”)val myModel = bundle.read[MyModel]( “myModel”)
III