Your SlideShare is downloading. ×
EC3 Workshop - Evernote API with Mobile SDKs
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

EC3 Workshop - Evernote API with Mobile SDKs

422
views

Published on

Slides from the EC3 workshop : http://evernote.com/ec/

Slides from the EC3 workshop : http://evernote.com/ec/

Published in: Technology, Business

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
422
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Mustafa Furniturewala Evernote Mobile SDKs: Getting Started with the Evernote API Monday, September 30, 13
  • 2. #EC2013 Evernote API • Access to a user’s Evernote account/business • Read/Create/Find notes • FindRelated/Reminders Monday, September 30, 13
  • 3. #EC2013 Mobile SDK’s Monday, September 30, 13
  • 4. #EC2013 Mobile SDK’s • Easy to use - hide complexities Monday, September 30, 13
  • 5. #EC2013 Mobile SDK’s • Easy to use - hide complexities • Local API’s Monday, September 30, 13
  • 6. #EC2013 Mobile SDK’s • Easy to use - hide complexities • Local API’s • Support popular environments (cocoapods/ maven) Monday, September 30, 13
  • 7. #EC2013 Mobile SDK’s • Easy to use - hide complexities • Local API’s • Support popular environments (cocoapods/ maven) • Wrappers Monday, September 30, 13
  • 8. #EC2013 Getting started Monday, September 30, 13
  • 9. #EC2013 Getting started Monday, September 30, 13
  • 10. #EC2013 Getting started 1. Create an account on sandbox.evernote.com Monday, September 30, 13
  • 11. #EC2013 Getting started 1. Create an account on sandbox.evernote.com 2. Get your consumer key Monday, September 30, 13
  • 12. #EC2013 Getting started 1. Create an account on sandbox.evernote.com 2. Get your consumer key 3. Download the SDK Monday, September 30, 13
  • 13. #EC2013 Getting started 1. Create an account on sandbox.evernote.com 2. Get your consumer key 3. Download the SDK 4. Start using the API’s Monday, September 30, 13
  • 14. #EC2013 Authentication Monday, September 30, 13
  • 15. #EC2013 Authentication 1. OAuth 1.0a Monday, September 30, 13
  • 16. #EC2013 Authentication 1. OAuth 1.0a 2. Mobile SDK’s handle everything for you Monday, September 30, 13
  • 17. #EC2013 Authentication 1. OAuth 1.0a 2. Mobile SDK’s handle everything for you 3. Github Monday, September 30, 13
  • 18. #EC2013 Yinxiang Biji Monday, September 30, 13
  • 19. #EC2013 Yinxiang Biji 1. Evernote’s China service Monday, September 30, 13
  • 20. #EC2013 Yinxiang Biji 1. Evernote’s China service 2. Bootstrapping Monday, September 30, 13
  • 21. #EC2013 Yinxiang Biji 1. Evernote’s China service 2. Bootstrapping 3. Mobile SDK’s handle everything for you Monday, September 30, 13
  • 22. #EC2013 Yinxiang Biji 1. Evernote’s China service 2. Bootstrapping 3. Mobile SDK’s handle everything for you Monday, September 30, 13
  • 23. #EC2013 Getting started Monday, September 30, 13
  • 24. #EC2013 Getting started Monday, September 30, 13
  • 25. #EC2013 Getting started •[EvernoteSession sharedSession] Monday, September 30, 13
  • 26. #EC2013 Getting started •[EvernoteSession sharedSession] •- (void)authenticateWithViewController:completionHandler: Monday, September 30, 13
  • 27. #EC2013 Getting started •[EvernoteSession sharedSession] •- (void)authenticateWithViewController:completionHandler: •[EvernoteUserStore userStore] Monday, September 30, 13
  • 28. #EC2013 Getting started •[EvernoteSession sharedSession] •- (void)authenticateWithViewController:completionHandler: •[EvernoteUserStore userStore] •[EvernoteNoteStore noteStore] Monday, September 30, 13
  • 29. #EC2013 Getting started •[EvernoteSession sharedSession] •- (void)authenticateWithViewController:completionHandler: •[EvernoteUserStore userStore] •[EvernoteNoteStore noteStore] Monday, September 30, 13
  • 30. #EC2013 Note Metadata Body Attachments Monday, September 30, 13
  • 31. #EC2013 ENML • Markup language for the body of a note • Rich content • Based on XHTML • Validate against the DTD Monday, September 30, 13
  • 32. #EC2013 ENML Monday, September 30, 13
  • 33. #EC2013 ENML <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note> <div><en-todo></en-todo>Checkbox 1</div> <div><en-todo checked="true"></en-todo>Checkbox 2</div> <div><br clear="none"/></div> <div><ol><li>Number 1</li><li>Number 2</li></ol></div> </en-note> Monday, September 30, 13
  • 34. #EC2013 ENML Monday, September 30, 13
  • 35. #EC2013 ENML en-note Monday, September 30, 13
  • 36. #EC2013 ENML en-note en-media Monday, September 30, 13
  • 37. #EC2013 ENML en-note en-media en-crypt Monday, September 30, 13
  • 38. #EC2013 ENML en-note en-media en-crypt en-todo Monday, September 30, 13
  • 39. #EC2013 Write ENML Monday, September 30, 13
  • 40. #EC2013 Write ENML ENMLWriter - iOS only Monday, September 30, 13
  • 41. #EC2013 Write ENML ENMLWriter - iOS only (void) writeResource:(EDAMResource *)resource; Monday, September 30, 13
  • 42. #EC2013 Write ENML ENMLWriter - iOS only (void) writeResource:(EDAMResource *)resource; (void) writeEncryptedInfo: (ENEncryptedContentInfo *)encryptedInfo; Monday, September 30, 13
  • 43. #EC2013 Write ENML ENMLWriter - iOS only (void) writeResource:(EDAMResource *)resource; (void) writeEncryptedInfo: (ENEncryptedContentInfo *)encryptedInfo; (void) writeTodoWithCheckedState: (BOOL)checkedState; Monday, September 30, 13
  • 44. #EC2013 ENML Writer EDAMData *edamData = [[EDAMData alloc] initWithBodyHash:dataHash size:myFileData.length body:myFileData]; EDAMResource* resource = [[EDAMResource alloc] init]; [resource setData:edamData]; [resource setMime:@"image/png"]; ENMLWriter* myWriter = [[ENMLWriter alloc] init] Monday, September 30, 13
  • 45. #EC2013 ENML Writer [myWriter startDocument]; [myWriter startElement:@"span"]; [myWriter startElement:@"br"]; [myWriter endElement]; [myWriter writeResource:resource]; [myWriter endElement]; [myWriter endDocument]; Monday, September 30, 13
  • 46. #EC2013 View ENML ENML -> HTML - (void) convertENMLToHTML:enmlContent completionBlock: Monday, September 30, 13
  • 47. #EC2013 Sharing and Business Monday, September 30, 13
  • 48. #EC2013 Sharing and Business • Share notes/notebooks Monday, September 30, 13
  • 49. #EC2013 Sharing and Business • Share notes/notebooks • Business API Monday, September 30, 13
  • 50. #EC2013 Sharing and Business • Share notes/notebooks • Business API • SDK’s help you out Monday, September 30, 13
  • 51. #EC2013 Helpful SDK functions • List notes for a shared notebook • List all the business notebooks • Create a business notebook • Create a note in a business notebook Monday, September 30, 13
  • 52. #EC2013 Example - Get all the Post-it® notes Monday, September 30, 13
  • 53. #EC2013 Example - Get all the Post-it® notes EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore]; Monday, September 30, 13
  • 54. #EC2013 Example - Get all the Post-it® notes EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore]; EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; Monday, September 30, 13
  • 55. #EC2013 Example - Get all the Post-it® notes EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore]; EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; [noteFilter setWords:@"sourceApplication:postit"]; Monday, September 30, 13
  • 56. #EC2013 Example - Get all the Post-it® notes EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore]; EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; [noteFilter setWords:@"sourceApplication:postit"]; EDAMNotesMetadataResultSpec* metadataResultSpec = [[EDAMNotesMetadataResultSpec alloc] init]; Monday, September 30, 13
  • 57. #EC2013 Example - Get all the Post-it® notes EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore]; EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; [noteFilter setWords:@"sourceApplication:postit"]; EDAMNotesMetadataResultSpec* metadataResultSpec = [[EDAMNotesMetadataResultSpec alloc] init]; [metadataResultSpec setIncludeTitle:YES]; Monday, September 30, 13
  • 58. #EC2013 Example - Get all the Post-it® notes EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore]; EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; [noteFilter setWords:@"sourceApplication:postit"]; EDAMNotesMetadataResultSpec* metadataResultSpec = [[EDAMNotesMetadataResultSpec alloc] init]; [metadataResultSpec setIncludeTitle:YES]; [noteStore findNotesMetadataWithFilter:noteFilter offset:0 maxNotes: 100 resultSpec:metadataResultSpec success:^(EDAMNotesMetadataList *metadata)} failure:^(NSError *error) {}]; Monday, September 30, 13
  • 59. #EC2013 Example - Get all the Post-it® notes EvernoteNoteStore *noteStore = [EvernoteNoteStore noteStore]; EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; [noteFilter setWords:@"sourceApplication:postit"]; EDAMNotesMetadataResultSpec* metadataResultSpec = [[EDAMNotesMetadataResultSpec alloc] init]; [metadataResultSpec setIncludeTitle:YES]; [noteStore findNotesMetadataWithFilter:noteFilter offset:0 maxNotes: 100 resultSpec:metadataResultSpec success:^(EDAMNotesMetadataList *metadata)} failure:^(NSError *error) {}]; Monday, September 30, 13
  • 60. #EC2013 Example - List notes from a shared notebook Monday, September 30, 13
  • 61. #EC2013 Example - List notes from a shared notebook EvernoteNoteStore *defaultNoteStore = [EvernoteNoteStore noteStore]; Monday, September 30, 13
  • 62. #EC2013 Example - List notes from a shared notebook EvernoteNoteStore *defaultNoteStore = [EvernoteNoteStore noteStore]; [defaultNoteStore listLinkedNotebooksWithSuccess:^(NSArray *linkedNotebooks) { Monday, September 30, 13
  • 63. #EC2013 Example - List notes from a shared notebook EvernoteNoteStore *defaultNoteStore = [EvernoteNoteStore noteStore]; [defaultNoteStore listLinkedNotebooksWithSuccess:^(NSArray *linkedNotebooks) { EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; Monday, September 30, 13
  • 64. #EC2013 Example - List notes from a shared notebook EvernoteNoteStore *defaultNoteStore = [EvernoteNoteStore noteStore]; [defaultNoteStore listLinkedNotebooksWithSuccess:^(NSArray *linkedNotebooks) { EDAMNoteFilter* noteFilter = [[EDAMNoteFilter alloc] init]; [defaultNoteStore listNotesForLinkedNotebook:linkedNotebooks[0] withFilter:noteFilter success:^(EDAMNoteList *list) { } failure:^(NSError *error) { }];} Monday, September 30, 13
  • 65. #EC2013 Interact with the Evernote app Monday, September 30, 13
  • 66. #EC2013 Interact with the Evernote app 1. Create notes Monday, September 30, 13
  • 67. #EC2013 Interact with the Evernote app 1. Create notes 2. View a note Monday, September 30, 13
  • 68. #EC2013 Interact with the Evernote app 1. Create notes 2. View a note 3. Authentication Monday, September 30, 13
  • 69. #EC2013 Interact with the Evernote app 1. Create notes 2. View a note 3. Authentication 4. Intents on Android Monday, September 30, 13
  • 70. #EC2013 Wrappers - Local API Monday, September 30, 13
  • 71. #EC2013 Wrappers - Local API - (void)viewNoteInEvernote: Monday, September 30, 13
  • 72. #EC2013 Wrappers - Local API - (void)viewNoteInEvernote: - (void)saveNewNoteToEvernoteApp: Monday, September 30, 13
  • 73. #EC2013 Wrappers - Local API - (void)viewNoteInEvernote: - (void)saveNewNoteToEvernoteApp: Monday, September 30, 13
  • 74. #EC2013 Open source Monday, September 30, 13
  • 75. #EC2013 Open source Submit pull requests Monday, September 30, 13
  • 76. #EC2013 Open source Submit pull requests Open issues Monday, September 30, 13
  • 77. #EC2013 Open source Submit pull requests Open issues Github.com/evernote Monday, September 30, 13
  • 78. #EC2013 Popular apps Pocket Lightly Monday, September 30, 13
  • 79. #EC2013 Popular apps Dolphin Browser Monday, September 30, 13
  • 80. #EC2013 Thank you! mustafa@evernote.com Questions? Monday, September 30, 13