Quantcast
Viewing all articles
Browse latest Browse all 23

PureScript on Android

I've been playing around with PureScript on Android via React Native.

Here's what a TodoMVC-style app looks like:

Image may be NSFW.
Clik here to view.

And here's what the guts of the code look like:

render::forallpropseff.RenderpropsAppStateeffrenderctx=do(AppStatestate)<-readStatectxreturn$view[(style"container")][text[style"title"]"todos",view[style"newTodoContainer"][textInput[style"newTodo",P.valuestate.newTodo,P.placeholder"What needs to be done?",N.onChangeText\newTodo->transformStatectx(updateNewTodonewTodo),N.onSubmitEditing\_->transformStatectxaddTodo]],listView[style"todoList",N.renderRow$todoRowctx,N.renderSeparatortodoSeparator,N.renderHeader$view[style"separator"][],N.dataSourcestate.dataSource],view[style"bottomBar"][view[style"filters"][filterButtonctxstate.filterAll,filterButtonctxstate.filterActive,filterButtonctxstate.filterCompleted],text[style"clearCompleted",N.onPress\_->transformStatectxclearCompleted]"Clear completed"]]main=dolog"Running app"registerComponent"PureScriptSampleApp"componentwherecomponent=createClass$specinitialStaterenderdataSource=listViewDataSourceinitialTodosinitialState=updateDataSource$AppState{nextId:18,newTodo:"",todos:initialTodos,dataSource:dataSource,filter:All}

Check out the example source code or the React Native wrapper code.

This wrapper code builds on Phil Freeman's purescript-react low-level wrapper for React, adding support for various elements used in Android. It is a work in progress. Functional afficionados will raise their eyebrows. Android gurus will throw their hands up in disgust. But it is PureScript. It is Android. And it is awesome.


Viewing all articles
Browse latest Browse all 23

Trending Articles