Skip to content

Commit

Permalink
add list of TODOs
Browse files Browse the repository at this point in the history
  • Loading branch information
pzp1997 committed Nov 5, 2017
1 parent e4f601a commit 7d91ba2
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 1 deletion.
49 changes: 49 additions & 0 deletions CONTRIBUTING.md
@@ -0,0 +1,49 @@
Below are a list of TODOs for the project. Before working on any of these, you **must** contact me so we can coordinate. The projects range in difficulty and requisite knowledge, so there should be something for everyone who wants to contribute.

- Keyed nodes
- Description: Add support for keyed nodes.
- Categories: JS implementation, minimal Elm/Swift implementation
- Starting Points: Implementation of `parent` in Native/Element.js
- Difficulty: 2/5


- Primitives++
- Description: We need more primitive elements, in order to make the framework fully expressive. Right now we have labels, buttons, and containers. We would like to add switches, sliders, text input, lists/tables, etc.
- Categories: Minimal Elm/JS/Swift implementation, Elm API design
- Starting Points: Implementations of existing primitives
- Difficulty: 1/5 - 3/5 (varies depending on the particular primitive)


- Multithreading
- Description: Run UIKit rendering methods on main thread and Elm code on a separate thread.
- Categories: Swift implementation, research/compare different methods
- Starting Points: Grand Central Dispatch (GCD), NSThreads
- Difficulty: 4/5


- HTTP requests
- Description: Make elm-lang/http work with Elm iOS. Believe it or not, `XMLHttpRequest` (XHR) is not part of any formal spec, but rather is considered part of the so called “Browser Object Model” (BOM). Since JavaScriptCore only implements the ECMAScript standard, we need to provide our own Swift implementation for XHR.
- Categories: Swift implementation, research/compare different methods
- Starting Points: elm-lang/http, URLSession, AlamoFire
- Difficulty: 3/5


- Stricter types for attributes
- Description: Currently, if an improper value is specified for an attribute, it is ignored (mainly applies for enum values that we are representing as Strings). Ideally, we would want the compiler to be able to catch these mistakes.
- Categories: Elm implementation, Elm API design
- Starting Points: rtfeldman/elm-css
- Difficulty 2.5/5


- Attributed text
- Description: iOS allows you to have fine-grained control over text styling via a mechanism called attributed text. We want to provide similar functionality in Elm iOS. A big component of this project is coming up with a suitable Elm API for doing this.
- Categories: Elm/Swift implementation, minimal JS implementation, API design
- Starting Points: Apple docs on attributed text
- Difficulty: 3.5/5


- Navigation
- Description: Most iOS apps provide some form of navigation. Currently, the best way to navigate between screens with Elm iOS is using buttons, which requires quite a bit of manual wiring up. Since this issue is currently being worked on for Elm proper, it might be best to wait to see what Evan comes up with and then sync up.
- Categories: Brainstorming and researching potential methods
- Starting Points: Current thoughts on Elm navigation/routing, Apple docs on navigation (UITabBar, UINavigationBar)
- Difficulty: ???
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -91,7 +91,7 @@ This repo is comprised of work from three other repos (although all further deve

## Contributing

If you are interested in contributing, contact me _before_ you start working on the project. Doing so makes it easier for me to help you, allows us to use our resources most effectively, and ensures that your efforts will not be in vain. There are plenty of tasks of varying difficulty and time commitment that you can help out with. Please contact me for more info.
If you are interested in contributing, contact me _before_ you start working on the project. Doing so makes it easier for me to help you, allows us to use our resources most effectively, and ensures that your efforts will not be in vain. There are plenty of tasks of varying difficulty and time commitment that you can help out with. Please check out [CONTRIBUTING.md](CONTRIBUTING.md) and contact me for more info.

## Acknowledgements

Expand Down

0 comments on commit 7d91ba2

Please sign in to comment.