Created
April 11, 2021 23:33
-
-
Save eugenehp/37f4f7a0a086379e0e2188a119746bcb to your computer and use it in GitHub Desktop.
Unofficial Medium API endpoint
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ]) | |
| }while(1);</x>{ | |
| "success": true, | |
| "payload": { | |
| "user": { | |
| "userId": "dc9e3fa402bd", | |
| "name": "Eugene Hauptmann", | |
| "username": "eugenehauptmann", | |
| "createdAt": 1615565124899, | |
| "imageId": "1*J0OI-J0hjTQ14-3JEzmgtw.jpeg", | |
| "backgroundImageId": "", | |
| "bio": "Eugene is a faith-centric technologist, a serial entrepreneur, angel investor, advisor, and mentor. He is the founder and CEO of REACTIVE LIONS INC.", | |
| "twitterScreenName": "eugenehp", | |
| "allowNotes": 1, | |
| "mediumMemberAt": 0, | |
| "isWriterProgramEnrolled": true, | |
| "isSuspended": false, | |
| "firstOpenedIosApp": 1618007225662, | |
| "isMembershipTrialEligible": true, | |
| "optInToIceland": false, | |
| "hasCompletedProfile": false, | |
| "userDismissableFlags": [ | |
| 2, | |
| 1 | |
| ], | |
| "hasSeenIcelandOnboarding": true, | |
| "type": "User" | |
| }, | |
| "streamItems": [ | |
| { | |
| "createdAt": 1618183925272, | |
| "heading": { | |
| "text": "Latest", | |
| "heading": { | |
| "fallbackTitle": "Latest", | |
| "headingBasic": { | |
| "title": "Latest" | |
| }, | |
| "headingType": "headingBasic" | |
| } | |
| }, | |
| "randomId": "30752cbce15f", | |
| "itemType": "heading", | |
| "type": "StreamItem" | |
| }, | |
| { | |
| "createdAt": 1618183925272, | |
| "postPreview": { | |
| "postId": "60704edc0c28", | |
| "postSuggestionReasons": [ | |
| { | |
| "reason": 28 | |
| } | |
| ] | |
| }, | |
| "randomId": "a6a72bdff7ac", | |
| "itemType": "postPreview", | |
| "type": "StreamItem" | |
| }, | |
| { | |
| "createdAt": 1618183925272, | |
| "postPreview": { | |
| "postId": "e6b55805c020", | |
| "postSuggestionReasons": [ | |
| { | |
| "reason": 28 | |
| } | |
| ] | |
| }, | |
| "randomId": "754113643a9d", | |
| "itemType": "postPreview", | |
| "type": "StreamItem" | |
| }, | |
| { | |
| "createdAt": 1618183925272, | |
| "postPreview": { | |
| "postId": "cd24e3dd9c0", | |
| "postSuggestionReasons": [ | |
| { | |
| "reason": 28 | |
| } | |
| ] | |
| }, | |
| "randomId": "af35f62e2550", | |
| "itemType": "postPreview", | |
| "type": "StreamItem" | |
| } | |
| ], | |
| "userMeta": { | |
| "numberOfPostsPublished": 5, | |
| "userId": "dc9e3fa402bd", | |
| "userSuggestionReason": { | |
| "followeesWhoFollow": { | |
| "users": [] | |
| }, | |
| "reason": "followeesWhoFollow" | |
| }, | |
| "collectionIds": [ | |
| "721736a8d468" | |
| ], | |
| "authorTags": [ | |
| { | |
| "slug": "ios", | |
| "name": "iOS", | |
| "postCount": 55763, | |
| "metadata": { | |
| "postCount": 55763, | |
| "coverImage": { | |
| "id": "1*kCG_aRZIZnnwjbgdZWm-eQ.png", | |
| "originalWidth": 1024, | |
| "originalHeight": 424 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "email", | |
| "name": "Email", | |
| "postCount": 16962, | |
| "metadata": { | |
| "postCount": 16962, | |
| "coverImage": { | |
| "id": "1*TcKsUzivGxXpRey6CPYviw.jpeg", | |
| "originalWidth": 2000, | |
| "originalHeight": 1206, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "react-native", | |
| "name": "React Native", | |
| "postCount": 14357, | |
| "metadata": { | |
| "postCount": 14357, | |
| "coverImage": { | |
| "id": "1*Mh__kj4-WC5pgsBRr-X8Lw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "kotlin", | |
| "name": "Kotlin", | |
| "postCount": 12759, | |
| "metadata": { | |
| "postCount": 12759, | |
| "coverImage": { | |
| "id": "1*Xz9N14Fx30za5vggYnkBeA.png", | |
| "originalWidth": 700, | |
| "originalHeight": 237, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "typescript", | |
| "name": "Typescript", | |
| "postCount": 12024, | |
| "metadata": { | |
| "postCount": 12024, | |
| "coverImage": { | |
| "id": "0*8Y5u9XKVj8iMn8z0", | |
| "originalWidth": 4666, | |
| "originalHeight": 3111, | |
| "unsplashPhotoId": "HSFv96gTTlE" | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "encryption", | |
| "name": "Encryption", | |
| "postCount": 4760, | |
| "metadata": { | |
| "postCount": 4760, | |
| "coverImage": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 619, | |
| "originalHeight": 232, | |
| "backgroundSize": "", | |
| "filter": "", | |
| "isFeatured": false, | |
| "externalSrc": "", | |
| "focusPercentX": -1, | |
| "focusPercentY": -1, | |
| "alt": "", | |
| "repairedAt": 0, | |
| "unsplashPhotoId": "" | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "plugins", | |
| "name": "Plugins", | |
| "postCount": 4068, | |
| "metadata": { | |
| "postCount": 4068, | |
| "coverImage": { | |
| "id": "1*pctf3Mb7koYAxvt60mpXuQ.jpeg", | |
| "originalWidth": 2800, | |
| "originalHeight": 840, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "intellectual-property", | |
| "name": "Intellectual Property", | |
| "postCount": 4042, | |
| "metadata": { | |
| "postCount": 4042, | |
| "coverImage": { | |
| "id": "1*nTcHv7oUce3vBlVvWPGGyg.png", | |
| "originalWidth": 1372, | |
| "originalHeight": 791 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "trademark", | |
| "name": "Trademark", | |
| "postCount": 2227, | |
| "metadata": { | |
| "postCount": 2227, | |
| "coverImage": { | |
| "id": "1*CfUOaiI0jSaYaNRTZ-RBeQ.png", | |
| "originalWidth": 453, | |
| "originalHeight": 349, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "objective-c", | |
| "name": "Objective C", | |
| "postCount": 1482, | |
| "metadata": { | |
| "postCount": 1482, | |
| "coverImage": { | |
| "id": "1*kvqaUsDh_enamSt75Szvqw.jpeg", | |
| "originalWidth": 960, | |
| "originalHeight": 673 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "signature", | |
| "name": "Signature", | |
| "postCount": 209, | |
| "metadata": { | |
| "postCount": 209, | |
| "coverImage": { | |
| "id": "1*ha17XUNm6d3HaZIkkwopCg.png", | |
| "originalWidth": 502, | |
| "originalHeight": 243 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "trademark-application", | |
| "name": "Trademark Application", | |
| "postCount": 147, | |
| "metadata": { | |
| "postCount": 147, | |
| "coverImage": { | |
| "id": "1*DO0J0MbA7hd8Z7VpHK4_lg.jpeg", | |
| "originalWidth": 2333, | |
| "originalHeight": 1083 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "uspto", | |
| "name": "Uspto", | |
| "postCount": 64, | |
| "metadata": { | |
| "postCount": 64, | |
| "coverImage": { | |
| "id": "1*b3KeaI-A2xhUt6fTG5m1KQ.png", | |
| "originalWidth": 2684, | |
| "originalHeight": 1290, | |
| "isFeatured": true, | |
| "alt": "Reactive Lions Trademark" | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "smime", | |
| "name": "Smime", | |
| "postCount": 6, | |
| "metadata": { | |
| "postCount": 6, | |
| "coverImage": { | |
| "id": "1*MQstHkK0vBuIreyrfzw1PQ.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true, | |
| "alt": "Best ways to send encrypted email in 2021" | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "nsuserdefault", | |
| "name": "Nsuserdefault", | |
| "postCount": 4, | |
| "metadata": { | |
| "postCount": 4, | |
| "coverImage": { | |
| "id": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "reactive-lions", | |
| "name": "Reactive Lions", | |
| "postCount": 1, | |
| "metadata": { | |
| "postCount": 1, | |
| "coverImage": { | |
| "id": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "action-extension", | |
| "name": "Action Extension", | |
| "postCount": 1, | |
| "metadata": { | |
| "postCount": 1, | |
| "coverImage": { | |
| "id": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| } | |
| ], | |
| "featuredPostId": "", | |
| "topWriterInTags": [], | |
| "type": "UserMeta" | |
| }, | |
| "userNavItemList": { | |
| "userNavItems": [ | |
| { | |
| "title": "Profile", | |
| "url": "https://medium.com/@eugenehauptmann", | |
| "systemItem": { | |
| "systemType": 1 | |
| }, | |
| "navType": "systemItem" | |
| }, | |
| { | |
| "title": "Claps", | |
| "url": "https://medium.com/@eugenehauptmann/has-recommended", | |
| "systemItem": { | |
| "systemType": 4 | |
| }, | |
| "navType": "systemItem" | |
| }, | |
| { | |
| "title": "Responses", | |
| "url": "https://medium.com/@eugenehauptmann/responses", | |
| "systemItem": { | |
| "systemType": 3 | |
| }, | |
| "navType": "systemItem" | |
| } | |
| ] | |
| }, | |
| "userNavActiveIndex": 0, | |
| "profileTypeName": "overview", | |
| "isStandaloneEditPage": false, | |
| "references": { | |
| "Collection": { | |
| "721736a8d468": { | |
| "id": "721736a8d468", | |
| "name": "reactivelions", | |
| "slug": "reactivelions", | |
| "tags": [ | |
| "DEEPTECH", | |
| "FINTECH", | |
| "MACHINE LEARNING", | |
| "ARTIFICIAL INTELLIGENCE", | |
| "DEVOPS" | |
| ], | |
| "creatorId": "dc9e3fa402bd", | |
| "description": "Reactive Lions is a full cycle software house based in San Francisco, California. Since last decade we managed to build a team of experts across the industries, while preserving core values and putting people at the core of our innovations.", | |
| "shortDescription": "Reactive Lions is a full cycle software house based in San…", | |
| "image": { | |
| "imageId": "1*wMS3OyNwNhV94XHLjhQNmA.png", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 1000, | |
| "originalHeight": 1000, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "metadata": { | |
| "followerCount": 1, | |
| "activeAt": 1617670732089 | |
| }, | |
| "virtuals": { | |
| "permissions": { | |
| "canPublish": false, | |
| "canPublishAll": false, | |
| "canRepublish": false, | |
| "canRemove": false, | |
| "canManageAll": false, | |
| "canSubmit": false, | |
| "canEditPosts": false, | |
| "canAddWriters": false, | |
| "canViewStats": false, | |
| "canSendNewsletter": false, | |
| "canViewLockedPosts": false, | |
| "canViewCloaked": false, | |
| "canEditOwnPosts": false, | |
| "canBeAssignedAuthor": false, | |
| "canEnrollInHightower": false, | |
| "canLockPostsForMediumMembers": false, | |
| "canLockOwnPostsForMediumMembers": false, | |
| "canViewNewsletterV2Stats": false, | |
| "canCreateNewsletterV3": false | |
| }, | |
| "isSubscribed": false, | |
| "isEnrolledInHightower": false, | |
| "isEligibleForHightower": false, | |
| "isSubscribedToCollectionEmails": false, | |
| "isMuted": false, | |
| "canToggleEmail": false | |
| }, | |
| "logo": { | |
| "imageId": "1*YqDliV6ACOiU_V2w1jYBZg.png", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 1200, | |
| "originalHeight": 1200, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "twitterUsername": "reactivelions", | |
| "publicEmail": "[email protected]", | |
| "sections": [ | |
| { | |
| "type": 2, | |
| "collectionHeaderMetadata": { | |
| "title": "Reactive Lions", | |
| "description": "Technology insights on DeepTech, AI, ML, FinTech, Mobile DevOps.", | |
| "backgroundImage": {}, | |
| "logoImage": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 1200, | |
| "originalHeight": 1200, | |
| "alt": "reactivelions" | |
| }, | |
| "alignment": 2, | |
| "layout": 5 | |
| } | |
| }, | |
| { | |
| "type": 1, | |
| "postListMetadata": { | |
| "source": 1, | |
| "layout": 4, | |
| "number": 10, | |
| "postIds": [] | |
| } | |
| } | |
| ], | |
| "tintColor": "#FF283149", | |
| "lightText": true, | |
| "favicon": { | |
| "imageId": "", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 0, | |
| "originalHeight": 0, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "colorPalette": { | |
| "defaultBackgroundSpectrum": { | |
| "colorPoints": [ | |
| { | |
| "color": "#FF7B85A0", | |
| "point": 0 | |
| }, | |
| { | |
| "color": "#FF727B94", | |
| "point": 0.1 | |
| }, | |
| { | |
| "color": "#FF6A7288", | |
| "point": 0.2 | |
| }, | |
| { | |
| "color": "#FF61687C", | |
| "point": 0.3 | |
| }, | |
| { | |
| "color": "#FF585E6F", | |
| "point": 0.4 | |
| }, | |
| { | |
| "color": "#FF4F5463", | |
| "point": 0.5 | |
| }, | |
| { | |
| "color": "#FF454A56", | |
| "point": 0.6 | |
| }, | |
| { | |
| "color": "#FF3B3F49", | |
| "point": 0.7 | |
| }, | |
| { | |
| "color": "#FF31333B", | |
| "point": 0.8 | |
| }, | |
| { | |
| "color": "#FF25272D", | |
| "point": 0.9 | |
| }, | |
| { | |
| "color": "#FF191A1E", | |
| "point": 1 | |
| } | |
| ], | |
| "backgroundColor": "#FFFFFFFF" | |
| }, | |
| "tintBackgroundSpectrum": { | |
| "colorPoints": [ | |
| { | |
| "color": "#FF283149", | |
| "point": 0 | |
| }, | |
| { | |
| "color": "#FF424B62", | |
| "point": 0.1 | |
| }, | |
| { | |
| "color": "#FF5B6378", | |
| "point": 0.2 | |
| }, | |
| { | |
| "color": "#FF72798D", | |
| "point": 0.3 | |
| }, | |
| { | |
| "color": "#FF888EA0", | |
| "point": 0.4 | |
| }, | |
| { | |
| "color": "#FF9DA2B3", | |
| "point": 0.5 | |
| }, | |
| { | |
| "color": "#FFB1B6C4", | |
| "point": 0.6 | |
| }, | |
| { | |
| "color": "#FFC5C8D5", | |
| "point": 0.7 | |
| }, | |
| { | |
| "color": "#FFD9DBE5", | |
| "point": 0.8 | |
| }, | |
| { | |
| "color": "#FFECEDF5", | |
| "point": 0.9 | |
| }, | |
| { | |
| "color": "#FFFFFFFF", | |
| "point": 1 | |
| } | |
| ], | |
| "backgroundColor": "#FF283149" | |
| }, | |
| "highlightSpectrum": { | |
| "colorPoints": [ | |
| { | |
| "color": "#FFF2F2FA", | |
| "point": 0 | |
| }, | |
| { | |
| "color": "#FFEFF0F9", | |
| "point": 0.1 | |
| }, | |
| { | |
| "color": "#FFEDEEF9", | |
| "point": 0.2 | |
| }, | |
| { | |
| "color": "#FFEAEDF9", | |
| "point": 0.3 | |
| }, | |
| { | |
| "color": "#FFE7EBF9", | |
| "point": 0.4 | |
| }, | |
| { | |
| "color": "#FFE5E9F8", | |
| "point": 0.5 | |
| }, | |
| { | |
| "color": "#FFE2E7F8", | |
| "point": 0.6 | |
| }, | |
| { | |
| "color": "#FFE0E5F8", | |
| "point": 0.7 | |
| }, | |
| { | |
| "color": "#FFDDE3F8", | |
| "point": 0.8 | |
| }, | |
| { | |
| "color": "#FFDBE2F8", | |
| "point": 0.9 | |
| }, | |
| { | |
| "color": "#FFD8E0F8", | |
| "point": 1 | |
| } | |
| ], | |
| "backgroundColor": "#FFFFFFFF" | |
| }, | |
| "darkBackgroundSpectrum": { | |
| "colorPoints": [ | |
| { | |
| "color": "#FF929DBA", | |
| "point": 0 | |
| }, | |
| { | |
| "color": "#FF9CA5C0", | |
| "point": 0.1 | |
| }, | |
| { | |
| "color": "#FFA6AEC6", | |
| "point": 0.2 | |
| }, | |
| { | |
| "color": "#FFAFB6CC", | |
| "point": 0.3 | |
| }, | |
| { | |
| "color": "#FFB8BED2", | |
| "point": 0.4 | |
| }, | |
| { | |
| "color": "#FFC1C7D8", | |
| "point": 0.5 | |
| }, | |
| { | |
| "color": "#FFCACFDE", | |
| "point": 0.6 | |
| }, | |
| { | |
| "color": "#FFD3D7E3", | |
| "point": 0.7 | |
| }, | |
| { | |
| "color": "#FFDCDEE9", | |
| "point": 0.8 | |
| }, | |
| { | |
| "color": "#FFE5E6EE", | |
| "point": 0.9 | |
| }, | |
| { | |
| "color": "#FFEEEEF4", | |
| "point": 1 | |
| } | |
| ], | |
| "backgroundColor": "#FF000000" | |
| } | |
| }, | |
| "navItems": [], | |
| "colorBehavior": 2, | |
| "acceleratedMobilePagesState": 0, | |
| "collectionFeatures": [ | |
| 30 | |
| ], | |
| "ampLogo": { | |
| "imageId": "", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 0, | |
| "originalHeight": 0, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "header": { | |
| "title": "Reactive Lions", | |
| "description": "Technology insights on DeepTech, AI, ML, FinTech, Mobile DevOps.", | |
| "backgroundImage": {}, | |
| "logoImage": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 1200, | |
| "originalHeight": 1200, | |
| "alt": "reactivelions" | |
| }, | |
| "alignment": 2, | |
| "layout": 5 | |
| }, | |
| "subscriberCount": 1, | |
| "tagline": "Reactive Lions is a software house based in San Francisco, CA. With over 40 engineers across the US", | |
| "isOptedIntoAurora": false, | |
| "isCurationAllowedByDefault": false, | |
| "polarisCoverImage": { | |
| "imageId": "1*x3OHPjRz_nCoKr4etcO2uQ.png", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 3000, | |
| "originalHeight": 3000, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "type": "Collection" | |
| } | |
| }, | |
| "User": { | |
| "dc9e3fa402bd": { | |
| "userId": "dc9e3fa402bd", | |
| "name": "Eugene Hauptmann", | |
| "username": "eugenehauptmann", | |
| "createdAt": 1615565124899, | |
| "imageId": "1*J0OI-J0hjTQ14-3JEzmgtw.jpeg", | |
| "backgroundImageId": "", | |
| "bio": "Eugene is a faith-centric technologist, a serial entrepreneur, angel investor, advisor, and mentor. He is the founder and CEO of REACTIVE LIONS INC.", | |
| "twitterScreenName": "eugenehp", | |
| "allowNotes": 1, | |
| "mediumMemberAt": 0, | |
| "isWriterProgramEnrolled": true, | |
| "isSuspended": false, | |
| "firstOpenedIosApp": 1618007225662, | |
| "isMembershipTrialEligible": true, | |
| "optInToIceland": false, | |
| "hasCompletedProfile": false, | |
| "userDismissableFlags": [ | |
| 2, | |
| 1 | |
| ], | |
| "hasSeenIcelandOnboarding": true, | |
| "type": "User" | |
| } | |
| }, | |
| "Post": { | |
| "60704edc0c28": { | |
| "id": "60704edc0c28", | |
| "versionId": "307c1bdec", | |
| "creatorId": "dc9e3fa402bd", | |
| "homeCollectionId": "721736a8d468", | |
| "title": "How to build a react-native plugin in 2021", | |
| "detectedLanguage": "en", | |
| "latestVersion": "307c1bdec", | |
| "latestPublishedVersion": "307c1bdec", | |
| "hasUnpublishedEdits": false, | |
| "latestRev": 1267, | |
| "createdAt": 1617591071753, | |
| "updatedAt": 1617724693276, | |
| "acceptedAt": 0, | |
| "firstPublishedAt": 1617670731984, | |
| "latestPublishedAt": 1617724060234, | |
| "vote": false, | |
| "experimentalCss": "", | |
| "displayAuthor": "", | |
| "content": { | |
| "subtitle": "A step-by-step guide to building TypeScript wrapping around native code written using Objective-C and Kotlin.", | |
| "postDisplay": { | |
| "coverless": true | |
| } | |
| }, | |
| "virtuals": { | |
| "statusForCollection": "APPROVED", | |
| "allowNotes": true, | |
| "previewImage": { | |
| "imageId": "1*tZrrjDvR9OrJE98PYiybEQ.png", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "wordCount": 1478, | |
| "imageCount": 8, | |
| "readingTime": 6.710691823899371, | |
| "subtitle": "A step-by-step guide to building TypeScript wrapping around native code written using Objective-C and Kotlin.", | |
| "publishedInCount": 1, | |
| "usersBySocialRecommends": [], | |
| "noIndex": false, | |
| "recommends": 1, | |
| "isBookmarked": false, | |
| "tags": [ | |
| { | |
| "slug": "react-native", | |
| "name": "React Native", | |
| "postCount": 14357, | |
| "metadata": { | |
| "postCount": 14357, | |
| "coverImage": { | |
| "id": "1*Mh__kj4-WC5pgsBRr-X8Lw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "kotlin", | |
| "name": "Kotlin", | |
| "postCount": 12759, | |
| "metadata": { | |
| "postCount": 12759, | |
| "coverImage": { | |
| "id": "1*Xz9N14Fx30za5vggYnkBeA.png", | |
| "originalWidth": 700, | |
| "originalHeight": 237, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "objective-c", | |
| "name": "Objective C", | |
| "postCount": 1482, | |
| "metadata": { | |
| "postCount": 1482, | |
| "coverImage": { | |
| "id": "1*kvqaUsDh_enamSt75Szvqw.jpeg", | |
| "originalWidth": 960, | |
| "originalHeight": 673 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "typescript", | |
| "name": "Typescript", | |
| "postCount": 12024, | |
| "metadata": { | |
| "postCount": 12024, | |
| "coverImage": { | |
| "id": "0*8Y5u9XKVj8iMn8z0", | |
| "originalWidth": 4666, | |
| "originalHeight": 3111, | |
| "unsplashPhotoId": "HSFv96gTTlE" | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "plugins", | |
| "name": "Plugins", | |
| "postCount": 4068, | |
| "metadata": { | |
| "postCount": 4068, | |
| "coverImage": { | |
| "id": "1*pctf3Mb7koYAxvt60mpXuQ.jpeg", | |
| "originalWidth": 2800, | |
| "originalHeight": 840, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| } | |
| ], | |
| "socialRecommendsCount": 0, | |
| "responsesCreatedCount": 0, | |
| "links": { | |
| "entries": [ | |
| { | |
| "url": "https://en.wikipedia.org/wiki/Lint_(software)", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.npmjs.com/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://en.wikipedia.org/wiki/Gradle", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://en.wikipedia.org/wiki/Npm_(software)", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://facebook.github.io/metro/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/react-native-randomness/tree/0.0.1/android/src/main/java/com/reactnativerandomness", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://brew.sh/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/features/packages", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/react-native-randomness/tree/0.0.1/src", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://gist.github.com/eugenehp/9b24c286ed68246ac07d5e36e2a49759", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://docs.npmjs.com/cli/v7/commands/npm-publish", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/frostney/react-native-create-library", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/react-native-randomness/blob/0.0.1/android/gradle/wrapper/gradle-wrapper.properties#L3", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://medium.com/reactivelions", | |
| "alts": [ | |
| { | |
| "type": 2, | |
| "url": "medium://reactivelions" | |
| }, | |
| { | |
| "type": 3, | |
| "url": "medium://reactivelions" | |
| } | |
| ], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/react-native-randomness/blob/0.0.1/example/src/App.tsx", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.mozilla.org/en-US/docs/Glossary/Base64", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/callstack/react-native-builder-bob", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://crypto.stackexchange.com/questions/12436/what-is-the-difference-between-csprng-and-prng", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/facebook/metro", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://guides.cocoapods.org/making/making-a-cocoapod.html", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/brodybits/create-react-native-module", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://reactnative.dev/blog/2019/07/03/version-60", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://cocoapods.org/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.android.com/reference/java/security/SecureRandom", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://kotlinlang.org/docs/comparison-to-java.html", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.android.com/studio", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.apple.com/documentation/security/randomization_services?language=objc", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.apple.com/documentation/security/1399291-secrandomcopybytes?language=objc", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/services/#Cyber", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.npmjs.com/package/react-native-randomness", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/contact/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/about/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://apps.apple.com/us/app/xcode/id497799835?mt=12", | |
| "alts": [], | |
| "httpStatus": 200 | |
| } | |
| ], | |
| "version": "0.3", | |
| "generatedAt": 1617724062533 | |
| }, | |
| "isLockedPreviewOnly": false, | |
| "metaDescription": "", | |
| "totalClapCount": 1, | |
| "sectionCount": 1, | |
| "readingList": 0, | |
| "topics": [ | |
| { | |
| "topicId": "63c6f1f93ee", | |
| "slug": "javascript", | |
| "createdAt": 1493945704961, | |
| "deletedAt": 0, | |
| "image": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 5472, | |
| "originalHeight": 3648 | |
| }, | |
| "name": "Javascript", | |
| "description": "An ode to code.", | |
| "relatedTopics": [], | |
| "visibility": 1, | |
| "relatedTags": [], | |
| "relatedTopicIds": [], | |
| "seoTitle": "Javascript News and Articles — Medium", | |
| "type": "Topic" | |
| }, | |
| { | |
| "topicId": "decb52b64abf", | |
| "slug": "programming", | |
| "createdAt": 1493934116328, | |
| "deletedAt": 0, | |
| "image": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 6016, | |
| "originalHeight": 4016 | |
| }, | |
| "name": "Programming", | |
| "description": "The good, the bad, the buggy.", | |
| "relatedTopics": [], | |
| "visibility": 1, | |
| "relatedTags": [], | |
| "relatedTopicIds": [], | |
| "seoTitle": "Programming News and Articles — Medium", | |
| "type": "Topic" | |
| } | |
| ] | |
| }, | |
| "coverless": true, | |
| "slug": "how-to-build-a-react-native-plugin-in-2021", | |
| "translationSourcePostId": "", | |
| "translationSourceCreatorId": "", | |
| "isApprovedTranslation": false, | |
| "inResponseToPostId": "", | |
| "inResponseToRemovedAt": 0, | |
| "isTitleSynthesized": false, | |
| "allowResponses": true, | |
| "importedUrl": "", | |
| "importedPublishedAt": 0, | |
| "visibility": 0, | |
| "uniqueSlug": "how-to-build-a-react-native-plugin-in-2021-60704edc0c28", | |
| "previewContent": { | |
| "bodyModel": { | |
| "paragraphs": [ | |
| { | |
| "name": "previewImage", | |
| "type": 4, | |
| "text": "", | |
| "layout": 10, | |
| "metadata": { | |
| "id": "1*tZrrjDvR9OrJE98PYiybEQ.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true, | |
| "alt": "How to build a react-native plugin in 2021" | |
| } | |
| }, | |
| { | |
| "name": "c62a", | |
| "type": 3, | |
| "text": "How to build a react-native plugin in 2021", | |
| "markups": [], | |
| "alignment": 1 | |
| }, | |
| { | |
| "name": "c801", | |
| "type": 1, | |
| "text": "A step-by-step guide to building TypeScript wrapping around native code written using…", | |
| "markups": [], | |
| "alignment": 1 | |
| } | |
| ], | |
| "sections": [ | |
| { | |
| "startIndex": 0 | |
| } | |
| ] | |
| }, | |
| "isFullContent": false, | |
| "subtitle": "A step-by-step guide to building TypeScript wrapping around native code written using Objective-C and Kotlin." | |
| }, | |
| "license": 0, | |
| "inResponseToMediaResourceId": "", | |
| "canonicalUrl": "", | |
| "approvedHomeCollectionId": "721736a8d468", | |
| "isNewsletter": false, | |
| "newsletterId": "", | |
| "webCanonicalUrl": "", | |
| "mediumUrl": "", | |
| "migrationId": "", | |
| "notifyFollowers": true, | |
| "notifyTwitter": false, | |
| "notifyFacebook": false, | |
| "responseHiddenOnParentPostAt": 0, | |
| "isSeries": false, | |
| "isSubscriptionLocked": false, | |
| "seriesLastAppendedAt": 0, | |
| "audioVersionDurationSec": 0, | |
| "sequenceId": "", | |
| "isEligibleForRevenue": false, | |
| "isBlockedFromHightower": false, | |
| "deletedAt": 0, | |
| "lockedPostSource": 0, | |
| "hightowerMinimumGuaranteeStartsAt": 0, | |
| "hightowerMinimumGuaranteeEndsAt": 0, | |
| "featureLockRequestAcceptedAt": 0, | |
| "mongerRequestType": 1, | |
| "layerCake": 3, | |
| "socialTitle": "", | |
| "socialDek": "", | |
| "editorialPreviewTitle": "", | |
| "editorialPreviewDek": "", | |
| "curationEligibleAt": 0, | |
| "primaryTopicId": "63c6f1f93ee", | |
| "isProxyPost": false, | |
| "proxyPostFaviconUrl": "", | |
| "proxyPostProviderName": "", | |
| "proxyPostType": 0, | |
| "isSuspended": false, | |
| "isLimitedState": false, | |
| "seoTitle": "", | |
| "previewContent2": { | |
| "bodyModel": { | |
| "paragraphs": [ | |
| { | |
| "name": "c62a", | |
| "type": 3, | |
| "text": "How to build a react-native plugin in 2021", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "c801", | |
| "type": 1, | |
| "text": "A step-by-step guide to building TypeScript wrapping around native code written using Objective-C and Kotlin.", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "cea2", | |
| "type": 4, | |
| "text": "How to build a react-native plugin in 2021", | |
| "markups": [], | |
| "layout": 1, | |
| "metadata": { | |
| "id": "1*tZrrjDvR9OrJE98PYiybEQ.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true, | |
| "alt": "How to build a react-native plugin in 2021" | |
| } | |
| }, | |
| { | |
| "name": "4bf1", | |
| "type": 13, | |
| "text": "Motivation", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "a559", | |
| "type": 1, | |
| "text": "By design, react-native has a javascript executed in a single thread. Moreover, the react-native ecosystem is quite different from the node.js, which means packages like crypto are not available by default.", | |
| "markups": [ | |
| { | |
| "type": 3, | |
| "start": 170, | |
| "end": 176, | |
| "href": "https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API", | |
| "title": "", | |
| "rel": "", | |
| "anchorType": 0 | |
| }, | |
| { | |
| "type": 1, | |
| "start": 181, | |
| "end": 194 | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "32a3", | |
| "type": 1, | |
| "text": "The goal of this…", | |
| "markups": [] | |
| } | |
| ], | |
| "sections": [ | |
| { | |
| "name": "2e1a", | |
| "startIndex": 0 | |
| } | |
| ] | |
| }, | |
| "isFullContent": false, | |
| "subtitle": "A step-by-step guide to building TypeScript wrapping around native code written using Objective-C and Kotlin." | |
| }, | |
| "cardType": 0, | |
| "isDistributionAlertDismissed": false, | |
| "isShortform": false, | |
| "shortformType": 0, | |
| "responsesLocked": false, | |
| "isLockedResponse": false, | |
| "isPublishToEmail": false, | |
| "responseDistribution": 0, | |
| "isMarkedPaywallOnly": false, | |
| "type": "Post" | |
| }, | |
| "e6b55805c020": { | |
| "id": "e6b55805c020", | |
| "versionId": "54ac4c784c41", | |
| "creatorId": "dc9e3fa402bd", | |
| "homeCollectionId": "721736a8d468", | |
| "title": "How to pass the data between the react-native app and action extension on iOS", | |
| "detectedLanguage": "en", | |
| "latestVersion": "54ac4c784c41", | |
| "latestPublishedVersion": "54ac4c784c41", | |
| "hasUnpublishedEdits": false, | |
| "latestRev": 543, | |
| "createdAt": 1617060692541, | |
| "updatedAt": 1617068325061, | |
| "acceptedAt": 0, | |
| "firstPublishedAt": 1617066575627, | |
| "latestPublishedAt": 1617068315457, | |
| "vote": false, | |
| "experimentalCss": "", | |
| "displayAuthor": "", | |
| "content": { | |
| "subtitle": "As you might know, an ios application and its extensions use standalone data containers that do not intersect and can not be accessed from…", | |
| "postDisplay": { | |
| "coverless": true | |
| } | |
| }, | |
| "virtuals": { | |
| "statusForCollection": "APPROVED", | |
| "allowNotes": true, | |
| "previewImage": { | |
| "imageId": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "wordCount": 460, | |
| "imageCount": 21, | |
| "readingTime": 3.535849056603774, | |
| "subtitle": "As you might know, an ios application and its extensions use standalone data containers that do not intersect and can not be accessed from…", | |
| "publishedInCount": 1, | |
| "usersBySocialRecommends": [], | |
| "noIndex": false, | |
| "recommends": 0, | |
| "isBookmarked": false, | |
| "tags": [ | |
| { | |
| "slug": "react-native", | |
| "name": "React Native", | |
| "postCount": 14357, | |
| "metadata": { | |
| "postCount": 14357, | |
| "coverImage": { | |
| "id": "1*Mh__kj4-WC5pgsBRr-X8Lw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "action-extension", | |
| "name": "Action Extension", | |
| "postCount": 1, | |
| "metadata": { | |
| "postCount": 1, | |
| "coverImage": { | |
| "id": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "ios", | |
| "name": "iOS", | |
| "postCount": 55763, | |
| "metadata": { | |
| "postCount": 55763, | |
| "coverImage": { | |
| "id": "1*kCG_aRZIZnnwjbgdZWm-eQ.png", | |
| "originalWidth": 1024, | |
| "originalHeight": 424 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "nsuserdefault", | |
| "name": "Nsuserdefault", | |
| "postCount": 4, | |
| "metadata": { | |
| "postCount": 4, | |
| "coverImage": { | |
| "id": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "reactive-lions", | |
| "name": "Reactive Lions", | |
| "postCount": 1, | |
| "metadata": { | |
| "postCount": 1, | |
| "coverImage": { | |
| "id": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| } | |
| ], | |
| "socialRecommendsCount": 0, | |
| "responsesCreatedCount": 0, | |
| "links": { | |
| "entries": [ | |
| { | |
| "url": "https://brew.sh/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://formulae.brew.sh/formula/node", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/RNBacklinks/blob/main/ios/ShowBacklinks/ActionRequestHandler.m", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://cocoapods.org/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/RNBacklinks/blob/main/ios/ShowBacklinks/Action.js", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/RNBacklinks", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://github.com/eugenehp/RNBacklinks/blob/main/App.tsx", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://medium.com/reactivelions", | |
| "alts": [ | |
| { | |
| "type": 2, | |
| "url": "medium://reactivelions" | |
| }, | |
| { | |
| "type": 3, | |
| "url": "medium://reactivelions" | |
| } | |
| ], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/contact/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/services/#Cyber", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| } | |
| ], | |
| "version": "0.3", | |
| "generatedAt": 1617068316572 | |
| }, | |
| "isLockedPreviewOnly": false, | |
| "metaDescription": "", | |
| "totalClapCount": 0, | |
| "sectionCount": 1, | |
| "readingList": 0, | |
| "topics": [ | |
| { | |
| "topicId": "63c6f1f93ee", | |
| "slug": "javascript", | |
| "createdAt": 1493945704961, | |
| "deletedAt": 0, | |
| "image": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 5472, | |
| "originalHeight": 3648 | |
| }, | |
| "name": "Javascript", | |
| "description": "An ode to code.", | |
| "relatedTopics": [], | |
| "visibility": 1, | |
| "relatedTags": [], | |
| "relatedTopicIds": [], | |
| "seoTitle": "Javascript News and Articles — Medium", | |
| "type": "Topic" | |
| }, | |
| { | |
| "topicId": "decb52b64abf", | |
| "slug": "programming", | |
| "createdAt": 1493934116328, | |
| "deletedAt": 0, | |
| "image": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 6016, | |
| "originalHeight": 4016 | |
| }, | |
| "name": "Programming", | |
| "description": "The good, the bad, the buggy.", | |
| "relatedTopics": [], | |
| "visibility": 1, | |
| "relatedTags": [], | |
| "relatedTopicIds": [], | |
| "seoTitle": "Programming News and Articles — Medium", | |
| "type": "Topic" | |
| } | |
| ] | |
| }, | |
| "coverless": true, | |
| "slug": "how-to-pass-the-data-between-the-react-native-app-and-action-extension-on-ios", | |
| "translationSourcePostId": "", | |
| "translationSourceCreatorId": "", | |
| "isApprovedTranslation": false, | |
| "inResponseToPostId": "", | |
| "inResponseToRemovedAt": 0, | |
| "isTitleSynthesized": false, | |
| "allowResponses": true, | |
| "importedUrl": "", | |
| "importedPublishedAt": 0, | |
| "visibility": 0, | |
| "uniqueSlug": "how-to-pass-the-data-between-the-react-native-app-and-action-extension-on-ios-e6b55805c020", | |
| "previewContent": { | |
| "bodyModel": { | |
| "paragraphs": [ | |
| { | |
| "name": "previewImage", | |
| "type": 4, | |
| "text": "", | |
| "layout": 10, | |
| "metadata": { | |
| "id": "1*ymxvIgKD6F_NXzkN96Bszw.png", | |
| "originalWidth": 1440, | |
| "originalHeight": 1024, | |
| "isFeatured": true | |
| } | |
| }, | |
| { | |
| "name": "1c33", | |
| "type": 3, | |
| "text": "How to pass the data between the react-native app and action extension on iOS", | |
| "markups": [], | |
| "alignment": 1 | |
| } | |
| ], | |
| "sections": [ | |
| { | |
| "startIndex": 0 | |
| } | |
| ] | |
| }, | |
| "isFullContent": false, | |
| "subtitle": "As you might know, an ios application and its extensions use standalone data containers that do not intersect and can not be accessed from…" | |
| }, | |
| "license": 0, | |
| "inResponseToMediaResourceId": "", | |
| "canonicalUrl": "", | |
| "approvedHomeCollectionId": "721736a8d468", | |
| "isNewsletter": false, | |
| "newsletterId": "", | |
| "webCanonicalUrl": "", | |
| "mediumUrl": "", | |
| "migrationId": "", | |
| "notifyFollowers": true, | |
| "notifyTwitter": false, | |
| "notifyFacebook": false, | |
| "responseHiddenOnParentPostAt": 0, | |
| "isSeries": false, | |
| "isSubscriptionLocked": false, | |
| "seriesLastAppendedAt": 0, | |
| "audioVersionDurationSec": 0, | |
| "sequenceId": "", | |
| "isEligibleForRevenue": false, | |
| "isBlockedFromHightower": false, | |
| "deletedAt": 0, | |
| "lockedPostSource": 0, | |
| "hightowerMinimumGuaranteeStartsAt": 0, | |
| "hightowerMinimumGuaranteeEndsAt": 0, | |
| "featureLockRequestAcceptedAt": 0, | |
| "mongerRequestType": 1, | |
| "layerCake": 0, | |
| "socialTitle": "", | |
| "socialDek": "", | |
| "editorialPreviewTitle": "", | |
| "editorialPreviewDek": "", | |
| "curationEligibleAt": 0, | |
| "isProxyPost": false, | |
| "proxyPostFaviconUrl": "", | |
| "proxyPostProviderName": "", | |
| "proxyPostType": 0, | |
| "isSuspended": false, | |
| "isLimitedState": false, | |
| "seoTitle": "", | |
| "previewContent2": { | |
| "bodyModel": { | |
| "paragraphs": [ | |
| { | |
| "name": "1c33", | |
| "type": 3, | |
| "text": "How to pass the data between the react-native app and action extension on iOS", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "84b0", | |
| "type": 1, | |
| "text": "As you might know, an iOS application and its extensions use standalone data containers that do not intersect and can not be accessed from one another. This article outlines a technique for sharing data between the application itself and application extension bidirectionally. It uses NSUserDefaults configured with special suite via…", | |
| "markups": [ | |
| { | |
| "type": 10, | |
| "start": 285, | |
| "end": 299 | |
| }, | |
| { | |
| "type": 10, | |
| "start": 334, | |
| "end": 344 | |
| } | |
| ] | |
| } | |
| ], | |
| "sections": [ | |
| { | |
| "name": "cf5a", | |
| "startIndex": 0 | |
| } | |
| ] | |
| }, | |
| "isFullContent": false, | |
| "subtitle": "As you might know, an ios application and its extensions use standalone data containers that do not intersect and can not be accessed from…" | |
| }, | |
| "cardType": 0, | |
| "isDistributionAlertDismissed": false, | |
| "isShortform": false, | |
| "shortformType": 0, | |
| "responsesLocked": false, | |
| "isLockedResponse": false, | |
| "isPublishToEmail": false, | |
| "responseDistribution": 0, | |
| "isMarkedPaywallOnly": false, | |
| "type": "Post" | |
| }, | |
| "cd24e3dd9c0": { | |
| "id": "cd24e3dd9c0", | |
| "versionId": "9bde5143a7d9", | |
| "creatorId": "dc9e3fa402bd", | |
| "homeCollectionId": "721736a8d468", | |
| "title": "How to register a trademark with USPTO in 2021— Part 1", | |
| "detectedLanguage": "en", | |
| "latestVersion": "9bde5143a7d9", | |
| "latestPublishedVersion": "9bde5143a7d9", | |
| "hasUnpublishedEdits": false, | |
| "latestRev": 643, | |
| "createdAt": 1616408745063, | |
| "updatedAt": 1616463489924, | |
| "acceptedAt": 0, | |
| "firstPublishedAt": 1616463477507, | |
| "latestPublishedAt": 1616463477507, | |
| "vote": false, | |
| "experimentalCss": "", | |
| "displayAuthor": "", | |
| "content": { | |
| "subtitle": "Submitting Trademark application via TEAS with USPTO", | |
| "postDisplay": { | |
| "coverless": true | |
| } | |
| }, | |
| "virtuals": { | |
| "statusForCollection": "APPROVED", | |
| "allowNotes": true, | |
| "previewImage": { | |
| "imageId": "1*b3KeaI-A2xhUt6fTG5m1KQ.png", | |
| "filter": "", | |
| "backgroundSize": "", | |
| "originalWidth": 2684, | |
| "originalHeight": 1290, | |
| "strategy": "resample", | |
| "height": 0, | |
| "width": 0 | |
| }, | |
| "wordCount": 966, | |
| "imageCount": 5, | |
| "readingTime": 4.478616352201258, | |
| "subtitle": "Submitting Trademark application via TEAS with USPTO", | |
| "publishedInCount": 1, | |
| "usersBySocialRecommends": [], | |
| "noIndex": false, | |
| "recommends": 0, | |
| "isBookmarked": false, | |
| "tags": [ | |
| { | |
| "slug": "uspto", | |
| "name": "Uspto", | |
| "postCount": 64, | |
| "metadata": { | |
| "postCount": 64, | |
| "coverImage": { | |
| "id": "1*b3KeaI-A2xhUt6fTG5m1KQ.png", | |
| "originalWidth": 2684, | |
| "originalHeight": 1290, | |
| "isFeatured": true, | |
| "alt": "Reactive Lions Trademark" | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "trademark", | |
| "name": "Trademark", | |
| "postCount": 2227, | |
| "metadata": { | |
| "postCount": 2227, | |
| "coverImage": { | |
| "id": "1*CfUOaiI0jSaYaNRTZ-RBeQ.png", | |
| "originalWidth": 453, | |
| "originalHeight": 349, | |
| "isFeatured": true | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "trademark-application", | |
| "name": "Trademark Application", | |
| "postCount": 147, | |
| "metadata": { | |
| "postCount": 147, | |
| "coverImage": { | |
| "id": "1*DO0J0MbA7hd8Z7VpHK4_lg.jpeg", | |
| "originalWidth": 2333, | |
| "originalHeight": 1083 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "intellectual-property", | |
| "name": "Intellectual Property", | |
| "postCount": 4042, | |
| "metadata": { | |
| "postCount": 4042, | |
| "coverImage": { | |
| "id": "1*nTcHv7oUce3vBlVvWPGGyg.png", | |
| "originalWidth": 1372, | |
| "originalHeight": 791 | |
| } | |
| }, | |
| "type": "Tag" | |
| }, | |
| { | |
| "slug": "reactive-lions", | |
| "name": "Reactivelions", | |
| "postCount": 0, | |
| "metadata": { | |
| "postCount": 0, | |
| "coverImage": { | |
| "id": "1*b3KeaI-A2xhUt6fTG5m1KQ.png", | |
| "originalWidth": 2684, | |
| "originalHeight": 1290, | |
| "isFeatured": true, | |
| "alt": "Reactive Lions Trademark" | |
| } | |
| }, | |
| "type": "Tag" | |
| } | |
| ], | |
| "socialRecommendsCount": 0, | |
| "responsesCreatedCount": 0, | |
| "links": { | |
| "entries": [ | |
| { | |
| "url": "http://design", | |
| "alts": [], | |
| "httpStatus": 0 | |
| }, | |
| { | |
| "url": "https://tmep.uspto.gov/RDMS/TMEP/current#/current/TMEP-1400d1e1.html", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.uspto.gov/trademarks/trademark-timelines/trademark-application-and-post-registration-process-timelines", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.uspto.gov/trademarks/apply", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.uspto.gov/trademarks/trademark-timelines/section-1a-timeline-application-based-use-commerce", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.uspto.gov/trademarks/trademark-fee-information", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.uspto.gov/trademarks/maintain/responding-office-actions", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.uspto.gov/trademarks/basics/basic-facts-about-trademarks-videos", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "http://uspto.gov/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.wipo.int/portal/en/index.html", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.wipo.int/treaties/en/registration/madrid/summary_madrid_marks.html", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.slideshare.net/eugenehp/how-to-register-a-trademark-with-uspto-in-2021-part1-244911136", | |
| "alts": [ | |
| { | |
| "type": 3, | |
| "url": "slideshare-app://ss/244911136" | |
| }, | |
| { | |
| "type": 2, | |
| "url": "slideshare-app://ss/244911136" | |
| } | |
| ], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/contact/", | |
| "alts": [], | |
| "httpStatus": 200 | |
| }, | |
| { | |
| "url": "https://www.reactivelions.com/services/#Cyber", | |
| "alts": [], | |
| "httpStatus": 200 | |
| } | |
| ], | |
| "version": "0.3", | |
| "generatedAt": 1616463478671 | |
| }, | |
| "isLockedPreviewOnly": false, | |
| "metaDescription": "", | |
| "totalClapCount": 0, | |
| "sectionCount": 1, | |
| "readingList": 0, | |
| "topics": [ | |
| { | |
| "topicId": "4861fee224fd", | |
| "slug": "marketing", | |
| "createdAt": 1493928453626, | |
| "deletedAt": 0, | |
| "image": { | |
| "id": "1*[email protected]", | |
| "originalWidth": 4000, | |
| "originalHeight": 2250 | |
| }, | |
| "name": "Marketing", | |
| "description": "Always be branding.", | |
| "relatedTopics": [], | |
| "visibility": 1, | |
| "relatedTags": [], | |
| "relatedTopicIds": [], | |
| "seoTitle": "Marketing Articles and News — Medium", | |
| "type": "Topic" | |
| } | |
| ] | |
| }, | |
| "coverless": true, | |
| "slug": "how-to-register-a-trademark-with-uspto-in-2021-part-1", | |
| "translationSourcePostId": "", | |
| "translationSourceCreatorId": "", | |
| "isApprovedTranslation": false, | |
| "inResponseToPostId": "", | |
| "inResponseToRemovedAt": 0, | |
| "isTitleSynthesized": false, | |
| "allowResponses": true, | |
| "importedUrl": "", | |
| "importedPublishedAt": 0, | |
| "visibility": 0, | |
| "uniqueSlug": "how-to-register-a-trademark-with-uspto-in-2021-part-1-cd24e3dd9c0", | |
| "previewContent": { | |
| "bodyModel": { | |
| "paragraphs": [ | |
| { | |
| "name": "previewImage", | |
| "type": 4, | |
| "text": "", | |
| "layout": 10, | |
| "metadata": { | |
| "id": "1*b3KeaI-A2xhUt6fTG5m1KQ.png", | |
| "originalWidth": 2684, | |
| "originalHeight": 1290, | |
| "isFeatured": true, | |
| "alt": "Reactive Lions Trademark" | |
| } | |
| }, | |
| { | |
| "name": "0104", | |
| "type": 3, | |
| "text": "How to register a trademark with USPTO in 2021— Part 1", | |
| "markups": [], | |
| "alignment": 1 | |
| }, | |
| { | |
| "name": "fdf9", | |
| "type": 13, | |
| "text": "Submitting Trademark application via TEAS with…", | |
| "markups": [], | |
| "alignment": 1 | |
| } | |
| ], | |
| "sections": [ | |
| { | |
| "startIndex": 0 | |
| } | |
| ] | |
| }, | |
| "isFullContent": false, | |
| "subtitle": "Submitting Trademark application via TEAS with USPTO" | |
| }, | |
| "license": 0, | |
| "inResponseToMediaResourceId": "", | |
| "canonicalUrl": "", | |
| "approvedHomeCollectionId": "721736a8d468", | |
| "isNewsletter": false, | |
| "newsletterId": "", | |
| "webCanonicalUrl": "", | |
| "mediumUrl": "", | |
| "migrationId": "", | |
| "notifyFollowers": true, | |
| "notifyTwitter": false, | |
| "notifyFacebook": false, | |
| "responseHiddenOnParentPostAt": 0, | |
| "isSeries": false, | |
| "isSubscriptionLocked": false, | |
| "seriesLastAppendedAt": 0, | |
| "audioVersionDurationSec": 0, | |
| "sequenceId": "", | |
| "isEligibleForRevenue": false, | |
| "isBlockedFromHightower": false, | |
| "deletedAt": 0, | |
| "lockedPostSource": 0, | |
| "hightowerMinimumGuaranteeStartsAt": 0, | |
| "hightowerMinimumGuaranteeEndsAt": 0, | |
| "featureLockRequestAcceptedAt": 0, | |
| "mongerRequestType": 1, | |
| "layerCake": 0, | |
| "socialTitle": "", | |
| "socialDek": "", | |
| "editorialPreviewTitle": "", | |
| "editorialPreviewDek": "", | |
| "curationEligibleAt": 0, | |
| "isProxyPost": false, | |
| "proxyPostFaviconUrl": "", | |
| "proxyPostProviderName": "", | |
| "proxyPostType": 0, | |
| "isSuspended": false, | |
| "isLimitedState": false, | |
| "seoTitle": "", | |
| "previewContent2": { | |
| "bodyModel": { | |
| "paragraphs": [ | |
| { | |
| "name": "0104", | |
| "type": 3, | |
| "text": "How to register a trademark with USPTO in 2021— Part 1", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "fdf9", | |
| "type": 13, | |
| "text": "Submitting Trademark application via TEAS with USPTO", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "a988", | |
| "type": 4, | |
| "text": "Reactive Lions Trademark", | |
| "markups": [], | |
| "layout": 5, | |
| "metadata": { | |
| "id": "1*b3KeaI-A2xhUt6fTG5m1KQ.png", | |
| "originalWidth": 2684, | |
| "originalHeight": 1290, | |
| "isFeatured": true, | |
| "alt": "Reactive Lions Trademark" | |
| } | |
| }, | |
| { | |
| "name": "bea0", | |
| "type": 13, | |
| "text": "TL;DR", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "6220", | |
| "type": 1, | |
| "text": "Do you want to register your name or your logo, or both? Of course, you can register a phrase or an image. Cases may vary significantly. In this article, we are covering how to register a trademark for a business name.", | |
| "markups": [] | |
| }, | |
| { | |
| "name": "2771", | |
| "type": 1, | |
| "text": "It will take less than 1 hour to apply…", | |
| "markups": [ | |
| { | |
| "type": 3, | |
| "start": 173, | |
| "end": 177, | |
| "href": "https://www.uspto.gov/trademarks/apply", | |
| "title": "", | |
| "rel": "", | |
| "anchorType": 0 | |
| }, | |
| { | |
| "type": 1, | |
| "start": 105, | |
| "end": 106 | |
| }, | |
| { | |
| "type": 1, | |
| "start": 167, | |
| "end": 177 | |
| } | |
| ] | |
| } | |
| ], | |
| "sections": [ | |
| { | |
| "name": "f314", | |
| "startIndex": 0 | |
| } | |
| ] | |
| }, | |
| "isFullContent": false, | |
| "subtitle": "Submitting Trademark application via TEAS with USPTO" | |
| }, | |
| "cardType": 0, | |
| "isDistributionAlertDismissed": false, | |
| "isShortform": false, | |
| "shortformType": 0, | |
| "responsesLocked": false, | |
| "isLockedResponse": false, | |
| "isPublishToEmail": false, | |
| "responseDistribution": 0, | |
| "isMarkedPaywallOnly": false, | |
| "type": "Post" | |
| } | |
| }, | |
| "Social": { | |
| "dc9e3fa402bd": { | |
| "userId": "lo_5d739b71d6fd", | |
| "targetUserId": "dc9e3fa402bd", | |
| "type": "Social" | |
| } | |
| }, | |
| "SocialStats": { | |
| "dc9e3fa402bd": { | |
| "userId": "dc9e3fa402bd", | |
| "usersFollowedCount": 6, | |
| "usersFollowedByCount": 2, | |
| "type": "SocialStats" | |
| } | |
| } | |
| }, | |
| "paging": { | |
| "path": "https://medium.com/_/api/users/dc9e3fa402bd/profile/stream", | |
| "next": { | |
| "limit": 100, | |
| "to": "1616463477507", | |
| "source": "overview", | |
| "ignoredIds": [], | |
| "page": 2 | |
| } | |
| } | |
| }, | |
| "v": 3, | |
| "b": "20210409-1916-root" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment