commit
4ea9544d6e
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
type: slide
|
||||||
|
---
|
||||||
|
|
||||||
|
# QuickPlay
|
||||||
|
## A simple app to quickly use remote players
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Features
|
||||||
|
|
||||||
|
Easy to learn
|
||||||
|
Central management
|
||||||
|
(Theoretically) extensible / modular
|
||||||
|
Usable on Android 4.4+ (Tested on Marshmallow)
|
||||||
|
(Android only)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Architecture
|
||||||
|
|
||||||
|
```graphviz
|
||||||
|
digraph "Arch" {
|
||||||
|
layout=fdp
|
||||||
|
RP -> Player [style="dotted", dir="both"];
|
||||||
|
RP[label="Remote player"]
|
||||||
|
XML -> AppConfig -> PlayerConfig -> {Player Playables HTTP};
|
||||||
|
UI -> LayoutStrategies;
|
||||||
|
Person -> UI -> Playables -> Metadata
|
||||||
|
Metadata -> LayoutStrategies
|
||||||
|
HTTP[label="HTTP + INI"]
|
||||||
|
Person, RP, UI, XML, HTTP [shape=box]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Issues
|
||||||
|
|
||||||
|
Understanding Android ecosystem is hard
|
||||||
|
- unintuitive naming
|
||||||
|
- complex hierarchy of support libraries
|
||||||
|
- I didn't find comphrehensive overview
|
||||||
|
- many APIs are replaced
|
||||||
|
|
||||||
|
Quite a lot of boilerplate code (esp. UI)
|
||||||
|
|
||||||
|
Visual Studio not refreshing Resource files.
|
||||||
|
|
||||||
|
No sensible MPD client library.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Lessons learned
|
||||||
|
|
||||||
|
- Basic Android architecture knowledge
|
||||||
|
- Network and asynchronous coding
|
||||||
|
- Library patching
|
||||||
|
|
Loading…
Reference in New Issue