The 7 Things I Know About Cyber Security After 25 Years | April 2024
The Design of iOS-Trello
1. iOS-
Trello
Design of iOS-Trello
A general purpose, open-source,
iOS/Objective-C API Wrapper
for the Trello Public API
Vince Mansel
http://slideshare.net/VinceMansel/iostrellotalk2
4. Driver #1: ShowPlan 4
(iOS Client)
Production Design,
Planning and Reference
For Creative People
#1 Feature:
ARRANGING
&
SEQUENCING
@vincemansel Designing iOS-Trello
5. Driver #2: Trello 5
(web client)
Collaboration and
Task Management
Web Service
(clients available on web, iPhone,
Android, etc)
#1 Feature:
CLOUD
COLLABORATION
@vincemansel Designing iOS-Trello
6. 6
Big Picture(s)
What is the problem that we are solving?
a. Social: Bridge idea/design with real-time performance
b. Technical: Allow users to share ideas with a mobile client to
other clients connected via web services
How can we create a system/tool to transform creative ideas
into sharable plans between collaborators?
@vincemansel Designing iOS-Trello
7. 7
Decision Funnel
Specific: Create a collaborative presence for the App
Use a “reflective” web service with an API
General: Allow developers to write collaborative apps
Open-source
Create an API Wrapper
Simple, Object-Oriented, Modular
Fast & Lightweight
Easy to implement & maintain
@vincemansel Designing iOS-Trello
8. 8
Baseline Solution
API Wrapper iOS-Trello API
ShowPlan: iOS-Trello: Trello:
A Production An open-source A collaboration
Design app API Wrapper and task management
implementation web service
A customized iOS
Trello Client
https://github.com/vincemansel/ios-trello
@vincemansel Designing iOS-Trello
9. 9
Object Mapping
ShowPlan -> Trello
ShowFlow -> Board
Scene -> List
Element -> Card
First Iteration
Export only
Text Only
@vincemansel Designing iOS-Trello
16. 16
Future for ios-trello
Iterate
Develop and test additional API calls in phases
Architect and develop real-time, bi-directional
functionality
Expand documentation and use cases
@vincemansel Designing iOS-Trello
17. 17
Trello Public API
https://trello.com/docs/api/index.html
@vincemansel Designing iOS-Trello
19. 19
Use Case: Create a Trello Board
a. User touches “Create Board” button on View
b. Controller instantiates a popover with text entry UI
c. User enters some text and touches OK
d. Popover sends text as a message to its delegate (Controller)
e. Delegate transforms text to a board name, and sends the name
parameter to the POST /1/boards Wrapper
f. JSON is asynchronously returned to caller and parsed for name
and ID of the created board
g. Caller stores board ID in Model and writes “boardName” to a
tableView cell.
@vincemansel Designing iOS-Trello
23. 23
Design Approach
Choose specific APIs calls and parameters required for
current revision of App
Construct API calls in desktop browser
Reverse Engineer & Inspect API behavior (JSON) and
network interaction (HTTP)
Code direct API calls in Objective-C
Abstract API methods into Wrapper classes
Test and iterate
@vincemansel Designing iOS-Trello
26. 26
Resources
Contribute to the ios-trello project
https://github.com/vincemansel/ios-trello
Follow the Trello API development
https://trello.com/api
@vincemansel Designing iOS-Trello
27. 27
REST
Client-Server
ShowPlan < > trello.com
Stateless
CoreData store in ShowPlan
Cacheable
(Client-side) JSON sent back in response to request
Layered System
Server-side implementation
Code on demand (optional)
NA
Uniform Interface
API, JSON, URIs (board, list, card, member)
@vincemansel Designing iOS-Trello
28. 28
REST Resources
RESTKit (iOS)
https://github.com/RestKit/RestKit
RESTful API Server – Doing it the right way
http://blog.mugunthkumar.com/
REST API Design Rulebook (Mark Messe)
@vincemansel Designing iOS-Trello
29. The Target
Ideas Implementation
Plans Performance
Design Phase Development
Writers Actors
Directors Performers
Planners Developers
Designers Implementers
Architects
30. 30
“The” Answer, extended
API Wrapper iOS-Trello API
ShowPlan: iOS-Trello: Trello:
A customized iOS An open-source A collaboration
Trello Client API Wrapper and task management
implementation web service
API Wrapper
ios4trello:
The demo project
for API Wrapper
dev and test
@vincemansel Designing iOS-Trello
31. 31
ios4trello (demo test app)
API Wrapper Sandbox:
Exercise, test and explore
Manual test tool
Open-source
Extensible
http://showplan.net/ios4TrelloAtGithub
http://bit.ly/ios4trello
https://github.com/vincemansel/ios-trello
@vincemansel Designing iOS-Trello
ShowPlan is an “IDE” for creative people. The app is a creative palette for the working artist. They bring the meaning to their creations.
I created an app called ShowPlan that allow users to create and collaborate. Searching for a technology solution that bridges the gap from design to planning to performance allowing collaboration along the way.
Why did I initiate the iOS-Trello project? Refer to the The Decision Book! Here are the basic steps that led me to this decision.
Here is what is possible today with the API wrapper. A designer can export text-based projects information to others that have access to the Trello board. Or one to many!
In the future, the app and API wrapper will evolve to support multimedia sharing and any to any collaboration with a host of web services.