SlideShare una empresa de Scribd logo
1 de 32
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
About …
Experience
   Software Developer
   Networking Consultant
   Systems Engineer

Past companies/clients
   Juniper, Cyan, Calix, Minerva, DirecTV, Divicom, Network
    Solutions, PacBell, AT&T Bell Labs

Education: MSEE - Georgia Tech, BSEE – Purdue

Fun: music, salsa, travel, hiking, AC, …
3




    Agenda
     Drivers

     Big Picture

     Decision Funnel

     Baseline Solution

     Software Architecture

     Questions

     Extra:
       Code Samples, Software Design and Techniques
                http://slideshare.net/VinceMansel/iostrellotalk2

@vincemansel                                                        Designing iOS-Trello
Driver #1: ShowPlan                            4




    (iOS Client)
   Production Design,
   Planning and Reference
   For Creative People



     #1 Feature:

     ARRANGING
     &
     SEQUENCING




@vincemansel                Designing iOS-Trello
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




    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




    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




    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




    Object Mapping
    ShowPlan -> Trello
         ShowFlow -> Board
         Scene -> List
         Element -> Card

    First Iteration
         Export only
         Text Only




@vincemansel                  Designing iOS-Trello
10




    ios-trello app architecture
                              Application Code


                                  ios-trello




                  OAuth                 AFNetworking




               NSURLRequest   NSURLConnection     NSURLResponse




@vincemansel                                                      Designing iOS-Trello
11




    ios-trello internals
                                  [VMTrelloApiClient sharedSession]
                                                                                                                      SINGLETON
       management
        connection


                     credential
                      storage




                                                                                         Notification
                                                             Checklist



                                                                                Member
                                     Action
                                              Board




                                                                                                            Type
                                                      Card


                                                                         List
                                                                                                                      WRAPPERS




                                                                                                        …
                                                                                                                      (Objective-C
                                                                                                                      Categories)



                                                                     MACROS




@vincemansel                                                                                                       Designing iOS-Trello
12




    Collaboration: Today




               Text



    Email




@vincemansel               Designing iOS-Trello
13




    Collaboration: Next Iteration




                  Multimedia

               Pe
                  e   rt
   Email                o
                            Pe
                                 er




@vincemansel                          Designing iOS-Trello
Questions?
Thanks!
@vincemansel

@ShowPlanApp

facebook.com/ShowPlan
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




    Trello Public API
https://trello.com/docs/api/index.html




@vincemansel                              Designing iOS-Trello
18




    trello.com/docs/api




@vincemansel              Designing iOS-Trello
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
Delegate: send + JSON parse                          20




@vincemansel                      Designing iOS-Trello
21




    WRAPPER




@vincemansel   Designing iOS-Trello
22




    MACROS




@vincemansel   Designing iOS-Trello
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
24




    Create the WRAPPER

https://trello.com/1/members/me?
notifications=all&notifications_limit=5&organizations=all&organization_paid_
account=true&organization_fields=name



    https://trello.com/1/members/me                      REQUEST

    ?

    notifications=all
    &notifications_limit=5
    &organizations=all
    &organization_paid_account=true                      PARAMETERS
    &organization_fields=name
@vincemansel                                                  Designing iOS-Trello
25




    Additional WRAPPERS
    GET

    POST

    PUT

    DELETE




@vincemansel              Designing iOS-Trello
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




    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




    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
The Target

     Ideas          Implementation
     Plans          Performance
     Design Phase   Development



     Writers        Actors
     Directors      Performers
     Planners       Developers
     Designers      Implementers
     Architects
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




    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
The Trello Tech Stack                                                               32




               Source:
               http://blog.fogcreek.com/the-trello-tech-stack/
@vincemansel                                                     Designing iOS-Trello

Más contenido relacionado

Destacado

Customer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software MonetizationCustomer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software Monetizationteam-WIBU
 
Scaling Your Software Sales: A Guide to the AppDirect Monetization Suite
Scaling Your Software Sales: A Guide to the AppDirect Monetization SuiteScaling Your Software Sales: A Guide to the AppDirect Monetization Suite
Scaling Your Software Sales: A Guide to the AppDirect Monetization SuiteAppDirect
 
Software Monetization KickStart
Software Monetization KickStartSoftware Monetization KickStart
Software Monetization KickStartFlexera
 
Rethink Your Software Licensing Monetization Strategy
Rethink Your Software Licensing Monetization StrategyRethink Your Software Licensing Monetization Strategy
Rethink Your Software Licensing Monetization StrategyFlexera
 
Patterns for Monetizing the IoT
Patterns for Monetizing the IoTPatterns for Monetizing the IoT
Patterns for Monetizing the IoTFlexera
 
Customer Acquisition & Monetization - Keys to your Business Model
Customer Acquisition & Monetization -  Keys to your Business ModelCustomer Acquisition & Monetization -  Keys to your Business Model
Customer Acquisition & Monetization - Keys to your Business ModelDavid Skok
 
The SaaS business model
The SaaS business modelThe SaaS business model
The SaaS business modelDavid Skok
 

Destacado (7)

Customer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software MonetizationCustomer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software Monetization
 
Scaling Your Software Sales: A Guide to the AppDirect Monetization Suite
Scaling Your Software Sales: A Guide to the AppDirect Monetization SuiteScaling Your Software Sales: A Guide to the AppDirect Monetization Suite
Scaling Your Software Sales: A Guide to the AppDirect Monetization Suite
 
Software Monetization KickStart
Software Monetization KickStartSoftware Monetization KickStart
Software Monetization KickStart
 
Rethink Your Software Licensing Monetization Strategy
Rethink Your Software Licensing Monetization StrategyRethink Your Software Licensing Monetization Strategy
Rethink Your Software Licensing Monetization Strategy
 
Patterns for Monetizing the IoT
Patterns for Monetizing the IoTPatterns for Monetizing the IoT
Patterns for Monetizing the IoT
 
Customer Acquisition & Monetization - Keys to your Business Model
Customer Acquisition & Monetization -  Keys to your Business ModelCustomer Acquisition & Monetization -  Keys to your Business Model
Customer Acquisition & Monetization - Keys to your Business Model
 
The SaaS business model
The SaaS business modelThe SaaS business model
The SaaS business model
 

Similar a The Design of iOS-Trello

CV Template per Developer
CV Template per DeveloperCV Template per Developer
CV Template per DeveloperInnovAction Lab
 
CV Template per Ingegneri
CV Template per IngegneriCV Template per Ingegneri
CV Template per IngegneriInnovAction Lab
 
WCXM marketplace 2012
WCXM marketplace 2012WCXM marketplace 2012
WCXM marketplace 2012Irina Guseva
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpromanojdhir
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpromanojdhir
 
Designing Windows 8 application - Microsoft Techdays 2013
Designing Windows 8 application - Microsoft Techdays 2013Designing Windows 8 application - Microsoft Techdays 2013
Designing Windows 8 application - Microsoft Techdays 2013Markus Jönsson
 
Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012jobandesther
 
ROLE Vision RWTH Aachen
ROLE Vision RWTH AachenROLE Vision RWTH Aachen
ROLE Vision RWTH AachenRalf Klamma
 
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdfIntel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdfOpenStack Foundation
 
Startup in action: Atooma, by Francesca Romano
Startup in action: Atooma, by Francesca Romano Startup in action: Atooma, by Francesca Romano
Startup in action: Atooma, by Francesca Romano Codemotion
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCraig Dunn
 
Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012Ricardo Peres
 
Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Codemotion
 
MonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionMonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionXamarin
 
Tangible Public Map
Tangible Public MapTangible Public Map
Tangible Public MapSuharsh L
 

Similar a The Design of iOS-Trello (20)

CV Template per Developer
CV Template per DeveloperCV Template per Developer
CV Template per Developer
 
CV Template per Ingegneri
CV Template per IngegneriCV Template per Ingegneri
CV Template per Ingegneri
 
RossiMattiaCVFull
RossiMattiaCVFullRossiMattiaCVFull
RossiMattiaCVFull
 
WCXM marketplace 2012
WCXM marketplace 2012WCXM marketplace 2012
WCXM marketplace 2012
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
Confluence
ConfluenceConfluence
Confluence
 
Xapstr
XapstrXapstr
Xapstr
 
Designing Windows 8 application - Microsoft Techdays 2013
Designing Windows 8 application - Microsoft Techdays 2013Designing Windows 8 application - Microsoft Techdays 2013
Designing Windows 8 application - Microsoft Techdays 2013
 
Xenit diary dev con 2018
Xenit diary dev con 2018Xenit diary dev con 2018
Xenit diary dev con 2018
 
Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012
 
ROLE Vision RWTH Aachen
ROLE Vision RWTH AachenROLE Vision RWTH Aachen
ROLE Vision RWTH Aachen
 
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdfIntel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
 
Startup in action: Atooma, by Francesca Romano
Startup in action: Atooma, by Francesca Romano Startup in action: Atooma, by Francesca Romano
Startup in action: Atooma, by Francesca Romano
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with Mono
 
Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012Software Developer's Journal - 02/2012
Software Developer's Journal - 02/2012
 
Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Develop multi-screen applications with Flex
Develop multi-screen applications with Flex
 
MonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionMonoTouch 5.2 Introduction
MonoTouch 5.2 Introduction
 
Flex mobile for JUG
Flex mobile for JUGFlex mobile for JUG
Flex mobile for JUG
 
Tangible Public Map
Tangible Public MapTangible Public Map
Tangible Public Map
 

Último

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Último (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
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
  • 2. About … Experience  Software Developer  Networking Consultant  Systems Engineer Past companies/clients  Juniper, Cyan, Calix, Minerva, DirecTV, Divicom, Network Solutions, PacBell, AT&T Bell Labs Education: MSEE - Georgia Tech, BSEE – Purdue Fun: music, salsa, travel, hiking, AC, …
  • 3. 3 Agenda  Drivers  Big Picture  Decision Funnel  Baseline Solution  Software Architecture  Questions  Extra:  Code Samples, Software Design and Techniques  http://slideshare.net/VinceMansel/iostrellotalk2 @vincemansel Designing iOS-Trello
  • 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
  • 10. 10 ios-trello app architecture Application Code ios-trello OAuth AFNetworking NSURLRequest NSURLConnection NSURLResponse @vincemansel Designing iOS-Trello
  • 11. 11 ios-trello internals [VMTrelloApiClient sharedSession] SINGLETON management connection credential storage Notification Checklist Member Action Board Type Card List WRAPPERS … (Objective-C Categories) MACROS @vincemansel Designing iOS-Trello
  • 12. 12 Collaboration: Today Text Email @vincemansel Designing iOS-Trello
  • 13. 13 Collaboration: Next Iteration Multimedia Pe e rt Email o Pe er @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
  • 18. 18 trello.com/docs/api @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
  • 20. Delegate: send + JSON parse 20 @vincemansel Designing iOS-Trello
  • 21. 21 WRAPPER @vincemansel Designing iOS-Trello
  • 22. 22 MACROS @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
  • 24. 24 Create the WRAPPER https://trello.com/1/members/me? notifications=all&notifications_limit=5&organizations=all&organization_paid_ account=true&organization_fields=name https://trello.com/1/members/me REQUEST ? notifications=all &notifications_limit=5 &organizations=all &organization_paid_account=true PARAMETERS &organization_fields=name @vincemansel Designing iOS-Trello
  • 25. 25 Additional WRAPPERS GET POST PUT DELETE @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
  • 32. The Trello Tech Stack 32 Source: http://blog.fogcreek.com/the-trello-tech-stack/ @vincemansel Designing iOS-Trello

Notas del editor

  1. ShowPlan is an “IDE” for creative people. The app is a creative palette for the working artist. They bring the meaning to their creations.
  2. 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.
  3. 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.
  4. 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!
  5. 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.