SlideShare a Scribd company logo

EverNote iOS SDK introduction & practices

Evernote iOS SDK introduction and provide 5 simple practices for using Evernote SDK

1 of 46
Download to read offline
Evernote iOS SDK
introduction
GoLater Developer MaoYang
Twitter @GoLaterApp E-Mail my@esast.com
About Me
• 5 years Mac Device Driver/Application developer
• 10 years Enterprise grade software development
tools consultant
• Now -> iOS/Android app developer
Today’s Goal
• iOS App development setup -> Xcode 5.x +
Cocoapods
• Evernote iOS SDK introduction
• 5 Evernote iOS SDK practices
Evernote SDK
• https://github.com/evernote/evernote-sdk-ios
• Evernote Cloud SDK detail spec ->http://
dev.evernote.com
EasyShare for Evernote
• Practice-1 : Development environment setup and
using Evernote OAuth API
• Practice-2 : List all of notebooks in your Evernote
account
• Practice-3 : List all of notes in a notebook
• Practice-4 : Render note content in UIWebView
• Practice-5 : Share your note to social network
Practice-1 SDK setup &
OAuth
• Xcode 5.x +
• cocoapods installation—> sudo gem install
cocoapods
• Create an iOS project named EasyShare by Xcode

Recommended

Local Authentication par Pierre-Alban Toth
Local Authentication par Pierre-Alban TothLocal Authentication par Pierre-Alban Toth
Local Authentication par Pierre-Alban TothCocoaHeads France
 
Open social 2.0 sandbox ee and breaking out of the gadget box
Open social 2.0 sandbox  ee and breaking out of the gadget boxOpen social 2.0 sandbox  ee and breaking out of the gadget box
Open social 2.0 sandbox ee and breaking out of the gadget boxRyan Baxter
 
CocoaPods Basic Usage
CocoaPods Basic UsageCocoaPods Basic Usage
CocoaPods Basic UsageRyan Wang
 
Evernote×モレスキンライフログ入門
Evernote×モレスキンライフログ入門Evernote×モレスキンライフログ入門
Evernote×モレスキンライフログ入門Masatake Hori
 
Evernote本共同出版イベントの時のスライド
Evernote本共同出版イベントの時のスライドEvernote本共同出版イベントの時のスライド
Evernote本共同出版イベントの時のスライド日本電気株式会社
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN StackTroy Miles
 

More Related Content

Similar to EverNote iOS SDK introduction & practices

Practical JavaScript Programming - Session 8/8
Practical JavaScript Programming - Session 8/8Practical JavaScript Programming - Session 8/8
Practical JavaScript Programming - Session 8/8Wilson Su
 
Formacion en movilidad: Conceptos de desarrollo en iOS (I)
Formacion en movilidad: Conceptos de desarrollo en iOS (I) Formacion en movilidad: Conceptos de desarrollo en iOS (I)
Formacion en movilidad: Conceptos de desarrollo en iOS (I) Mobivery
 
iOS 2 - The practical Stuff
iOS 2 - The practical StuffiOS 2 - The practical Stuff
iOS 2 - The practical StuffPetr Dvorak
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Sarp Erdag
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS DevelopmentJussi Pohjolainen
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebPatrick Chanezon
 
Android Workshop 2013
Android Workshop 2013Android Workshop 2013
Android Workshop 2013Junda Ong
 
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKHow to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKDominik Renzel
 
React Native for multi-platform mobile applications
React Native for multi-platform mobile applicationsReact Native for multi-platform mobile applications
React Native for multi-platform mobile applicationsMatteo Manchi
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialPatrick Chanezon
 
FI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS BasicsFI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS BasicsPetr Dvorak
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud CastlesBen Scofield
 
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.WO Community
 
Real World Asp.Net WebApi Applications
Real World Asp.Net WebApi ApplicationsReal World Asp.Net WebApi Applications
Real World Asp.Net WebApi ApplicationsEffie Arditi
 
Cross platform mobile development
Cross platform mobile development Cross platform mobile development
Cross platform mobile development Alberto De Bortoli
 
Android Workshop
Android WorkshopAndroid Workshop
Android WorkshopJunda Ong
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
 

Similar to EverNote iOS SDK introduction & practices (20)

Practical JavaScript Programming - Session 8/8
Practical JavaScript Programming - Session 8/8Practical JavaScript Programming - Session 8/8
Practical JavaScript Programming - Session 8/8
 
Formacion en movilidad: Conceptos de desarrollo en iOS (I)
Formacion en movilidad: Conceptos de desarrollo en iOS (I) Formacion en movilidad: Conceptos de desarrollo en iOS (I)
Formacion en movilidad: Conceptos de desarrollo en iOS (I)
 
iOS 2 - The practical Stuff
iOS 2 - The practical StuffiOS 2 - The practical Stuff
iOS 2 - The practical Stuff
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS Development
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
 
appledoc_style
appledoc_styleappledoc_style
appledoc_style
 
Android Workshop 2013
Android Workshop 2013Android Workshop 2013
Android Workshop 2013
 
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDKHow to Build & Develop Responsive Open Learning Environments with the ROLE SDK
How to Build & Develop Responsive Open Learning Environments with the ROLE SDK
 
React nativebeginner1
React nativebeginner1React nativebeginner1
React nativebeginner1
 
React Native for multi-platform mobile applications
React Native for multi-platform mobile applicationsReact Native for multi-platform mobile applications
React Native for multi-platform mobile applications
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocial
 
FI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS BasicsFI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS Basics
 
iOS5 NewStuff
iOS5 NewStuffiOS5 NewStuff
iOS5 NewStuff
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud Castles
 
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
 
Real World Asp.Net WebApi Applications
Real World Asp.Net WebApi ApplicationsReal World Asp.Net WebApi Applications
Real World Asp.Net WebApi Applications
 
Cross platform mobile development
Cross platform mobile development Cross platform mobile development
Cross platform mobile development
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
 

Recently uploaded

How we think about an advisor tech stack
How we think about an advisor tech stackHow we think about an advisor tech stack
How we think about an advisor tech stackSummit
 
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...MarcovanHurne2
 
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Umar Saif
 
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxLeveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxVotarikari Shravan
 
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17Ana-Maria Mihalceanu
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsEvangelia Mitsopoulou
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIEDanBrown980551
 
Power of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfPower of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfkatalinjordans1
 
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Product School
 
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes", Volodymyr TsapFwdays
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxInfosec
 
IT Nation Evolve event 2024 - Quarter 1
IT Nation Evolve event 2024  - Quarter 1IT Nation Evolve event 2024  - Quarter 1
IT Nation Evolve event 2024 - Quarter 1Inbay UK
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...DianaGray10
 
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...ISPMAIndia
 
Bit N Build Poland
Bit N Build PolandBit N Build Poland
Bit N Build PolandGDSC PJATK
 
Traffic Signboard Classification with Voice alert to the driver.pptx
Traffic Signboard Classification with Voice alert to the driver.pptxTraffic Signboard Classification with Voice alert to the driver.pptx
Traffic Signboard Classification with Voice alert to the driver.pptxharimaxwell0712
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Product School
 
Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringMassimo Talia
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?MENGSAYLOEM1
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolProduct School
 

Recently uploaded (20)

How we think about an advisor tech stack
How we think about an advisor tech stackHow we think about an advisor tech stack
How we think about an advisor tech stack
 
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
Digital Transformation Strategy & Plan Templates - www.beyondthecloud.digital...
 
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
 
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxLeveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
 
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applications
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIE
 
Power of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdfPower of 2024 - WITforce Odyssey.pptx.pdf
Power of 2024 - WITforce Odyssey.pptx.pdf
 
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
 
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap"Running Open-Source LLM models on Kubernetes",  Volodymyr Tsap
"Running Open-Source LLM models on Kubernetes", Volodymyr Tsap
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptx
 
IT Nation Evolve event 2024 - Quarter 1
IT Nation Evolve event 2024  - Quarter 1IT Nation Evolve event 2024  - Quarter 1
IT Nation Evolve event 2024 - Quarter 1
 
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
Automation Ops Series: Session 1 - Introduction and setup DevOps for UiPath p...
 
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
AI MODELS USAGE IN FINTECH PRODUCTS: PM APPROACH & BEST PRACTICES by Kasthuri...
 
Bit N Build Poland
Bit N Build PolandBit N Build Poland
Bit N Build Poland
 
Traffic Signboard Classification with Voice alert to the driver.pptx
Traffic Signboard Classification with Voice alert to the driver.pptxTraffic Signboard Classification with Voice alert to the driver.pptx
Traffic Signboard Classification with Voice alert to the driver.pptx
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
 
Dynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineeringDynamical systems simulation in Python for science and engineering
Dynamical systems simulation in Python for science and engineering
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product School
 

EverNote iOS SDK introduction & practices

  • 1. Evernote iOS SDK introduction GoLater Developer MaoYang Twitter @GoLaterApp E-Mail my@esast.com
  • 2. About Me • 5 years Mac Device Driver/Application developer • 10 years Enterprise grade software development tools consultant • Now -> iOS/Android app developer
  • 3. Today’s Goal • iOS App development setup -> Xcode 5.x + Cocoapods • Evernote iOS SDK introduction • 5 Evernote iOS SDK practices
  • 4. Evernote SDK • https://github.com/evernote/evernote-sdk-ios • Evernote Cloud SDK detail spec ->http:// dev.evernote.com
  • 5. EasyShare for Evernote • Practice-1 : Development environment setup and using Evernote OAuth API • Practice-2 : List all of notebooks in your Evernote account • Practice-3 : List all of notes in a notebook • Practice-4 : Render note content in UIWebView • Practice-5 : Share your note to social network
  • 6. Practice-1 SDK setup & OAuth • Xcode 5.x + • cocoapods installation—> sudo gem install cocoapods • Create an iOS project named EasyShare by Xcode
  • 7. Evernote SDK setup • create a file named Podfile in your root of project 
 plateform :iOS , ‘7.0’
 pod ‘Evernote-SDK-iOS’, ‘1.3.1’ • pod install • Open EasyShare.xcworkspace in Xcode
  • 9. Initialize SDK -1 #import "EvernoteSDK.h"! ! - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions! {! // Initial development is done on the sandbox service! // Change this to BootstrapServerBaseURLStringUS to use the production Evernote service! // Change this to BootstrapServerBaseURLStringCN to use the Yinxiang Biji production service! // Bootstrapping is supported by default with either BootstrapServerBaseURLStringUS or BootstrapServerBaseURLStringCN! // BootstrapServerBaseURLStringSandbox does not support the Yinxiang Biji service! NSString *EVERNOTE_HOST = BootstrapServerBaseURLStringUS; //使⽤用Production Server! ! // Fill in the consumer key and secret with the values that you received from Evernote! // To get an API key, visit http://dev.evernote.com/documentation/cloud/! NSString *CONSUMER_KEY = @"your key";! NSString *CONSUMER_SECRET = @"your secret";! ! // set up Evernote session singleton! [EvernoteSession setSharedSessionHost:EVERNOTE_HOST! consumerKey:CONSUMER_KEY ! consumerSecret:CONSUMER_SECRET];! }
  • 10. Initialize SDK -2 (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation: (id)annotation {! BOOL canHandle = NO;! if ([[NSString stringWithFormat:@"en-%@", [[EvernoteSession sharedSession] consumerKey]] isEqualToString:[url scheme]] == YES) {! canHandle = [[EvernoteSession sharedSession] canHandleOpenURL:url];! }! return canHandle;! }
  • 11. Initialize SDK-3 - (void)applicationDidBecomeActive:(UIApplication *)application! {! // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.! [[EvernoteSession sharedSession] handleDidBecomeActive];! }
  • 12. SingleTon need to know in this practice • [EvernoteSession sharedSession], responsible for login/logout, login status
  • 14. OAuth • if(![[EvernoteSession sharedSession] isAuthenticated){} • [[EvernoteSession sharedSession] authenticateWithViewController:self completionHandler:^(NSError *error){}]
  • 16. Practice-2 List all of your own notebooks
  • 17. SingleTon & Class need to know in this practice ! • [EvernoteStore noteStore] -> For ever note related operation • EDAMNotebook -> Class of Notebook object
  • 18. Query Notebook • [[EvernoteNotesStore noteStore] listNotebooksWithSuccess:^(NSArray *notebooks){ for(EDAMNotebook *notebook in notebooks){} } failure:^(NSError *error){}];
  • 20. Practice-3 List all of notes in a notebook
  • 21. Classes need to know in this practice • EDAMNoteFilter -> setup filter condition for query notes • EDAMNotesMetadataResultSpec -> Setup which note metadata fields would return from cloud • EDAMNoteMetadata -> Class of note metadata! • EDAMNotesMetadataList , Container for notes object array
  • 22. Filter • EDAMNoteFilter *filter = [[EDAMNoteFilter alloc] initWithOrder:NoteSortOrder_UPDATED ascending:NO words:nil notebookGuid:nil tagGuid:nil timeZone:nil inActive:NO emphasized:NO] • Filter full api spec doucment—>http:// dev.evernote.com/doc/reference/ NoteStore.html#Struct_NoteFilter
  • 23. Metadata fields • EDAMNotesMetadataResultSpec *resultSpec = [[EDAMNotesMetadataResultSpec alloc] initWithIncludeTitle:YES includeContentLength:YES includeCreated:YES includeUpdated:YES includeDeleted:YES includeUpdateSequenceNum:YES includeNotebookGuid:YES includeTagGuids:YES includeAttributes:YES includeLargestResourceMime:NO includeLargestResourceSize:YES];
  • 24. Query • [[EvernoteNoteStore noteStore] findNotesMetadataWithFilter:filter offset:0 maxNotes:10 resultSpec:resultSpec success:^(EDAMNotesMetadataList *metalist) {if(metalist.notes.count > 0)….}failure:^(NSError *error){ } ];
  • 27. Classes need to know in this practice • ENMLUtility->Convert ENML to HTML • EDAMNote -> Class of note object
  • 28. Download note content • [[EDAMNoteStore noteStore] getNoteWithGuid:note.guid withContent:YES withResourcesData:YES withResourceRecognition:NO withResourceAlternateData:NO success:^(EDAMNote *note){} failure:^(NSError *error{}]
  • 29. ENML->HTML • ENMLUtility *utility = [[ENMLUtility alloc] init] • [utilty convertENMLToHTML:note.content withResources:note.resources completion:^(NSString *html,NSError *error){}
  • 31. Practice-5 Share note to Social network
  • 32. setup pod would use in this practice • pod ‘LINEActivity’, ‘~>0.2’ • pod update
  • 33. Classes need to know in this practice • [EvernoteUserStore userStore], For fetching user related information like shardid • EDAMUser Class of user object
  • 34. Sharing note URL generated by Evernote • http://www.evernote.com/shard/{shardid}/sh/ {noteguid}/{notekey}
  • 35. How to get user’s shard id? • [[EvernoteUserStore userStore] getUserWithSuccess:^(EDAMUser *user){} failure:^(NSError *error){ NSString *shardId = user.shardId}];
  • 36. Share note then get note’s sharing key • [[EvernoteNoteStore noteStore] shareNoteWithGuid:note.guid success:^(NSString *key){} failure:^(NSError *error){}]
  • 37. iOS Share Activity for note sharing url • NSURL *shareURL = [NSURL URLWithString:shareurlstr] • NSArray *activityItems = @[shareurlstr,shareURL] • NSArray *applicationActivities = @[[LINEActivity alloc] init] • UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities]
  • 39. Share some of My experience …
  • 40. To Sync or not to ? • Evernote Sync API is another topic, Sync API like Mail IMAP protocol which sync all of cloud changes set to your App • Do you need all of notebook/notes in your App?
  • 41. Rate Limit • Limit for API calling for each hours • Implement Cache in your App for reducing Rate Limit exception • Detail-> http://dev.evernote.com/doc/articles/ rate_limits.php
  • 43. Note thumbnails • Note include in Evernote iOS SDK, Need to use HTTP request to fetch each note’s thumb image • Please refer to http://dev.evernote.com/doc/articles/ thumbnails.php
  • 44. Notebook • User’s own Notebook->EDAMNotebook • Notebook shared by friend ->EDAMLinkbook • Business Notebook • Take care about differences between each notebook interface
  • 45. Limitations for Writing to Evernote • Note content body need to be ENML format, EDAMWriter class could help you • EDAMLimits.h & EDAMLimits.m has a lot of Regular express for checking your input data
  • 46. Q & A