LISBON 10-12
APRIL 2014
LISBON 10-12
APRIL 2014

Edit your talk

Talks > Android and functional programming for Great Good?

Status

This talk has been approved for this year's edition. Check the calendar for more information.

Language

English

Abstract

If you are programming in Java on Android, you might be suffering from code bloat and lack of power. If you are not, well... I want to prove you otherwise :) Scala (http://scala-lang.org/) is a hybrid object-oriented and functional language for the JVM, which is rapidly gaining momentum. I’ve been using it on Android for more than a year; isn’t it just a mad fancy? We’ll find out :) This talk covers the matter in depth, along with tales of joy and frustration, and focuses on the following four topics:

SCALA 101 [5 min]
— What it is
— How to read
— Distinctive features
— Who uses it
Note: here [8] are the slides for the Scala introductory talk I gave at Fun(Lx) meetup.

THE SCALA+ANDROID ECOSYSTEM / STARTING OUT [10 min]
— The build system [1, 2]
— IDE support [3]
— Using library projects
— Fitting into memory / method count limits with ProGuard
— Pain points and best practices

THE WHY-S [15 min]
— Lazy evaluation, dealing with optional values and other ways to scrap your boilerplate with class
— Cherishing the UI thread: futures, execution contexts, scala-async [4]
— Being productive with Scaloid [5] and Macroid [6]

MACROID [6] (disclosure: I’m the author) [10 min]
— An experimental GUI language for Android
— Clean layout structure
— True modularity and composability
— Advanced features

LIVE CODING (if time allows) [5 min]
A very (I mean, very) short demo of creating and running a simple app.

[1] https://github.com/pfn/android-sdk-plugin
[2] https://github.com/jberkel/android-plugin
[3] https://groups.google.com/forum/#!topic/scala-on-android/EtDmVZYwLJc
[4] https://github.com/scala/async
[5] https://github.com/pocorall/scaloid
[6] http://macroid.github.io
[7] https://groups.google.com/forum/#!forum/scala-on-android
[8] http://stanch.github.io/funlx-meetup

Proposal date

2014-01-10 01:28:41

Rate & Comment

You can use this section to optionally comment on this talk (comments are public). Your comment is saved when you press the "comment" button at the bottom. Your thumb decision is private, no one will see it. You can change thumb decision at any time later, the last submission will prevail. You can post as many comments as you want.

You need to be registered and logged in to comment or rate this talk proposal.

Comments

Hélder Alexandre dos Santos Moreira
on , said:

Would like to see this, as I've only tried Java when developing for Android.

$geekfactor 0x3

Rui Grandão Rocha
on , said:

As another person who has only tried java on android and has been recently looking at scala this really interests me i hope you get approved!

$geekfactor 0x1

Astrid Creuzburg
on , said:

This is one well structured talk proposal, hah!

$geekfactor 0x0

Igor Antunes
on , said:

Thumbs up xD

$geekfactor 0x0

Ricardo Machado
on , said:

Interesting :) Upvoted!

Let's see how cool Scala is :)

$geekfactor 0x0

Rafael Reia
on , said:

I'm really interested in this one!

Upvoted

$geekfactor 0x0

Carlos Serrão
on , said:

It seems to be a really nice approach in the Android development world. I got to see this one!!!

$geekfactor 0x0

José Lopes (Sá)
on , said:

pretty cool since I was looking at learning Scala and Android anyway! upvoted!

$geekfactor 0x0

João Santos
on , said:

I looking forward for this approval. I'm kinda eager to get my hands on Scala and I think this would be a nice talk.

$geekfactor 0x0

João Carlos Macedo Flores dos Santos
on , said:

As someone who has only hear raving opinions on Scala, I sure would like to find out what all the buzz is about.

$geekfactor 0x1

Nick Stanchenko
on , said:

Guys (and gals), thanks for your comments! My intention is to adapt the level and complexity of detail to the audience (the initial talk planning was devised for ScalaDays2014 and thus assumed basic knowledge of Scala). As a first step, I’ve added some Scala 101 :) Let me know what else you would like to hear!

$geekfactor 0x0

Jorge Cavaco
on , said:

Interesting!

$geekfactor 0x0

André Dias
on , said:

As I've only used Java, I'm eager to see what's this about. And perhaps change the way I currently develop for Android.

$geekfactor 0x0

Bruno Maia
on , said:

I've recently gained an interest for Scala with all its functional power and reactive programming capabilities.
Can't wait to see that applied to Android!

$geekfactor 0x1

Natércio Moniz
on , said:

This looks interesting! I didn't know dalvik VM could run anything other that Java.

$geekfactor 0x0

Nick Stanchenko
on , said:

+ Natércio Moniz, Scala compiles to Java bytecode, so it’s perfectly usable. The only problem is the size of its runtime library (around 6M for Scala 2.10.x), which you can shrink with ProGuard. You can also use Kotlin, which compiles to Java *sourcecode*. The dynamic JVM languages (Groovy, Clojure, JRuby, Jython), as far as I know, do not really work.

$geekfactor 0x0

Nick Stanchenko
on , said:

By the way, I encourage the downvoters to share their critique in the comments, so that I can improve the talk ;)

$geekfactor 0x0

Daniel Araújo
on , said:

Nice, i'm wondering about diving in Scala, this look interesting!

$geekfactor 0x0

David Silva
on , said:

I'm in for this one

$geekfactor 0x0

Marco Amador
on , said:

As someone who wants to learn Scala, this one is a must-see!

$geekfactor 0x0

Serafim Pinto
on , said:

green button!!

$geekfactor 0x0

Pedro Roque
on , said:

Would be nice to have a Talk about Android porting, i.e., how to develop drivers for smartphones that are not Android native!

$geekfactor 0x0

Pedro Costa
on , said:

Computer says yes!!!

$geekfactor 0x0

Pedro Costa
on , said:

Computer says yes!!!

$geekfactor 0x0

Miao Sun
on , said:

Interesting, upvoted!

$geekfactor 0x0

Jorge Costa
on , said:

Interessante espero poder assistir :)

$geekfactor 0x0

Gonçalo Araújo
on , said:

An alternate approach to developing for the most used mobile plataform.

$geekfactor 0x0

You must log-in in order to comment this.