SlideShare a Scribd company logo
1 of 9
Bolts Framework
DMI Internal Tech Talk
Sokna Ly
Associate Software Engineer, iOS
Content
1.Overview
2.Tasks
3.How to & Demo
Overview
• Bolts was designed by Parse and Facebook
• Bolts is being used by FacebookSDK, ParseSDK and
also is a core of AWS SDK
• Release and open-source on Jan 30, 2014
• Organize complexity of asynchronous operations
• It’ just like a Promise in Javascript.
• Good bye to pyramid of doom of block. (Callback Hell)
Tasks
• BFTask takes care of managing dependencies for us.
Using NSOperation for dependency management, we
need declare all dependencies before starting an
operation.
NSOperation *networkingOperation = ...
NSOperation *resizingOperation = ...
[resizingOperation addDependency:networkingOperation];
• BFTasks release their dependencies while NSOperation
strongly retain its dependencies which would lead to a leak
or you can do it manually.
Tasks (cont.)
• BFTask allows you to perform branching, parallelism and
complex error handling.
• BFTasks keep track of the state of finished tasks: It tracks
whether there was a returned value, the task was
cancelled, or if an error occurred. With NSOperation, we
need to build everything manually.
Tasks (cont.)
• BFTask allows you to perform branching, parallelism and
complex error handling.
• BFTasks keep track of the state of finished tasks: It tracks
whether there was a returned value, the task was
cancelled, or if an error occurred. With NSOperation, we
need to build everything manually.
Tasks (cont.)
• Managing multiple async operations without BFTask??
dispatch_group??
nested block??
Increment number??
How to & Demo
Thanks

More Related Content

What's hot

Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to JavaSoumya Suman
 
JRuby deployments
JRuby deploymentsJRuby deployments
JRuby deploymentsberninme
 
Java introduction by lara technologies
Java introduction by lara technologiesJava introduction by lara technologies
Java introduction by lara technologiestechnologieslara
 
Java Course In Thane,Mumbai
Java Course In Thane,MumbaiJava Course In Thane,Mumbai
Java Course In Thane,Mumbainettech90
 
Java introduction with JVM architecture
Java introduction with JVM architectureJava introduction with JVM architecture
Java introduction with JVM architectureatozknowledge .com
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrantMakis Asimidis
 
JAVA Training in Noida
JAVA Training in NoidaJAVA Training in Noida
JAVA Training in NoidaBipul Roy
 
02 java programming features of java i
02 java programming features of java  i02 java programming features of java  i
02 java programming features of java iRavi Patki
 
Are hypermedia API's Just Hype?
Are hypermedia API's Just Hype?Are hypermedia API's Just Hype?
Are hypermedia API's Just Hype?Daniel Feist
 

What's hot (18)

Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to Java
 
Hang fire
Hang fireHang fire
Hang fire
 
JRuby deployments
JRuby deploymentsJRuby deployments
JRuby deployments
 
Introduction of java
Introduction of javaIntroduction of java
Introduction of java
 
Java introduction by lara technologies
Java introduction by lara technologiesJava introduction by lara technologies
Java introduction by lara technologies
 
PALASH SL GUPTA
PALASH SL GUPTAPALASH SL GUPTA
PALASH SL GUPTA
 
Ansible Playbook
Ansible PlaybookAnsible Playbook
Ansible Playbook
 
Java Course In Thane,Mumbai
Java Course In Thane,MumbaiJava Course In Thane,Mumbai
Java Course In Thane,Mumbai
 
1 java introduction
1 java introduction1 java introduction
1 java introduction
 
Don't worry with bower
Don't worry with bowerDon't worry with bower
Don't worry with bower
 
Java introduction with JVM architecture
Java introduction with JVM architectureJava introduction with JVM architecture
Java introduction with JVM architecture
 
Let's server your Data
Let's server your DataLet's server your Data
Let's server your Data
 
Improved development workflows using vagrant
Improved development workflows using vagrantImproved development workflows using vagrant
Improved development workflows using vagrant
 
JAVA Training in Noida
JAVA Training in NoidaJAVA Training in Noida
JAVA Training in Noida
 
intoduction to java
intoduction to javaintoduction to java
intoduction to java
 
02 java programming features of java i
02 java programming features of java  i02 java programming features of java  i
02 java programming features of java i
 
Are hypermedia API's Just Hype?
Are hypermedia API's Just Hype?Are hypermedia API's Just Hype?
Are hypermedia API's Just Hype?
 

Similar to Bolts Framework

Electric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi UshioElectric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi UshioDevDay.org
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipseMike Slinn
 
Using Docker and Elastic Beanstalk in Production
Using Docker and Elastic Beanstalk in ProductionUsing Docker and Elastic Beanstalk in Production
Using Docker and Elastic Beanstalk in ProductionRyan Marr
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentationdhananajay95
 
Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Andrea Tosato
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
Java Programming concept
Java Programming concept Java Programming concept
Java Programming concept Prakash Poudel
 

Similar to Bolts Framework (20)

Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Electric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi UshioElectric Microservices Land - Tsuyoshi Ushio
Electric Microservices Land - Tsuyoshi Ushio
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
Let me introduce you: DOTS
Let me introduce you: DOTSLet me introduce you: DOTS
Let me introduce you: DOTS
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
The power of dots
The power of dotsThe power of dots
The power of dots
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Industrial training
Industrial trainingIndustrial training
Industrial training
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipse
 
Using Docker and Elastic Beanstalk in Production
Using Docker and Elastic Beanstalk in ProductionUsing Docker and Elastic Beanstalk in Production
Using Docker and Elastic Beanstalk in Production
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Stackato
StackatoStackato
Stackato
 
Docker 101
Docker 101 Docker 101
Docker 101
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentation
 
Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Analysis
AnalysisAnalysis
Analysis
 
Java Programming concept
Java Programming concept Java Programming concept
Java Programming concept
 
Letest
LetestLetest
Letest
 

Bolts Framework

  • 1. Bolts Framework DMI Internal Tech Talk Sokna Ly Associate Software Engineer, iOS
  • 3. Overview • Bolts was designed by Parse and Facebook • Bolts is being used by FacebookSDK, ParseSDK and also is a core of AWS SDK • Release and open-source on Jan 30, 2014 • Organize complexity of asynchronous operations • It’ just like a Promise in Javascript. • Good bye to pyramid of doom of block. (Callback Hell)
  • 4. Tasks • BFTask takes care of managing dependencies for us. Using NSOperation for dependency management, we need declare all dependencies before starting an operation. NSOperation *networkingOperation = ... NSOperation *resizingOperation = ... [resizingOperation addDependency:networkingOperation]; • BFTasks release their dependencies while NSOperation strongly retain its dependencies which would lead to a leak or you can do it manually.
  • 5. Tasks (cont.) • BFTask allows you to perform branching, parallelism and complex error handling. • BFTasks keep track of the state of finished tasks: It tracks whether there was a returned value, the task was cancelled, or if an error occurred. With NSOperation, we need to build everything manually.
  • 6. Tasks (cont.) • BFTask allows you to perform branching, parallelism and complex error handling. • BFTasks keep track of the state of finished tasks: It tracks whether there was a returned value, the task was cancelled, or if an error occurred. With NSOperation, we need to build everything manually.
  • 7. Tasks (cont.) • Managing multiple async operations without BFTask?? dispatch_group?? nested block?? Increment number??
  • 8. How to & Demo