Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building Android and iOS Apps in F#
Search
Bernard Hsu
September 25, 2014
Programming
1
110
Building Android and iOS Apps in F#
F# talk given for Chicago Mobile .NET developers meetup September 25, 2014 at Microsoft Chicago
Bernard Hsu
September 25, 2014
Tweet
Share
More Decks by Bernard Hsu
See All by Bernard Hsu
New Drug Approvals 2014
bbhsu2
1
1.9k
Other Decks in Programming
See All in Programming
Amazon ECS Managed Instances が リリースされた!キャッチアップしよう!! / Let's catch up Amazon ECS Managed Instances
cocoeyes02
0
120
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
200
Towards Transactional Buffering of CDC Events @ Flink Forward 2025 Barcelona Spain
hpgrahsl
0
120
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
290
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
120
業務でAIを使いたい話
hnw
0
220
Google Opal解体新書
mickey_kubo
3
110
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
250
Blazing Fast UI Development with Compose Hot Reload (Bangladesh KUG, October 2025)
zsmb
2
440
NIKKEI Tech Talk#38
cipepser
0
350
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
470
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
290
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
How STYLIGHT went responsive
nonsquared
100
5.9k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
We Have a Design System, Now What?
morganepeng
54
7.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
900
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Producing Creativity
orderedlist
PRO
348
40k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
Building Android and iOS Apps in F# Bernard Hsu @BernardShoe
Founder, All Good People LLC www.letsthinkabout.us (Android, iOS) |> F# |> Xamarin
John Backus, October 1956 Credit: http://backreaction.blogspot.com/2007/04/fortran-at-50-inventor-john-backus.html
John Backus, 1957 + = <3
None
From LSODE Pack Alan C Hindmarsh 10/23/1978
August 1978 http://bit.ly/backus_fun
http://bit.ly/backus_fun
Lisp, 1959
Functional languages attract me because of their simplicity even when
solving complex tasks…. A good functional program is like a beautiful poem: you see the pieces of a ‘solution’ come together. -Don Syme, Creator F# https://www.simple-talk.com/opinion/geek-of-the- week/don-syme-geek-of-the-week/
http://www.tiobe.com/index.php/c ontent/paperinfo/tpci/index.html
The Tao of Functional Programming 1.Immutable Data 2. Function Composition
3. Pattern Matching 4. Lazy Evaluation |> http://bit.ly/backus_fun
1. Immutable Data • No variables, only values • No
imperative constructs • For, While loops • No mutable Arrays • No mutable Objects • No mutable strings http://bit.ly/backus_fun
1. Immutable Data Imperative Functional Snippets from http://blogs.msdn.com/b/doriancorompt/archive/2012/01/08/1-recursion-where-are-my-for-while-loops.aspx
1. Immutable Data Imperative Functional
The Tao of Functional Programming 1. Immutable Data 2.Function Composition
3. Pattern Matching 4. Lazy Evaluation |>
2. Function Composition Pipe-Forward Operator |> numbers Seq. map square
Seq.sum |> |> F# |> (i <3)
2. Function Composition Function Currying
The Tao of Functional Programming 1. Immutable Data 2. Function
Composition 3.Pattern Matching 4. Lazy Evaluation |>
3. Pattern Matching Switch – Case statements on steroids
3. Pattern Matching
The Tao of Functional Programming 1. Immutable Data 2. Function
Composition 3. Pattern Matching 4.Lazy Evaluation |>
4. Lazy Evaluation let x = Lazy<int>.Create(fun () -> printfn
"Evaluating x..."; 10) let y = lazy(printfn "Evaluating y..."; x.Value + x.Value)
Demos • F# Data • http://api.worldbank.org/countries/us/indicators/SP.POP.TOTL?date=2013
Demos • Game of Life • http://www.letsthinkabout.us/post/android-game-of-life • http://www.emergentmind.com/game-of-life
F# Xamarin • Tools are ready • But not up
to C#-par • iOS and Android are OO • Cannot write “pure” functional code • Good for use in Model
Building Android and iOS Apps in F# Bernard Hsu @BernardShoe
Founder, All Good People LLC www.letsthinkabout.us (Android, iOS) |> |> F# Xamarin