Discussion Forums  >  Plugins, Customizing, Source Code

Replies: 8    Views: 154

Pablo
buzztouch Evangelist
Profile
Posts: 51
Reg: Nov 09, 2011
Argentina
510
06/24/13 02:19 PM (12 years ago)

HTML Pro Screen in Android

Hi guys, im using the HTML Pro plugin, and works perfect in iOS but when i use it in Android i get this: https://www.dropbox.com/s/w3wbkp0z88ckkak/2013-06-24%2013.44.23.png Any idea?, really thanks, this is a amazing plugin!
 
GoNorthWest
buzztouch Evangelist
Profile
Posts: 8197
Reg: Jun 24, 2011
Oro Valley, AZ
1,000,000
like
06/24/13 02:51 PM (12 years ago)
Make sure your HTML file name follows the a_z0_9 naming convention, which means no caps, special characters or spaces. That would be the first thing I'd check. Also...the file should be in the BT_Docs folder (unless being accessed via URL), so check that as well. Mark
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
06/24/13 03:19 PM (12 years ago)
It would appear the html file contains capital letters, and has no extension. Not sure the extension really matters, but it would be better if it was a standard filename.
 
Pablo
buzztouch Evangelist
Profile
Posts: 51
Reg: Nov 09, 2011
Argentina
510
like
06/24/13 03:34 PM (12 years ago)
Mark, Cris thanks for the answers, but this is what i do: - Create a HTML Pro screen "Vitivinicola" with the file: viti.html - Create a Custom URL screen "map" with this link: http://batchgeo.com/map/babf936ea2b61e1296b4bed5e19abfdb - Add the code with the screen in HTML Pro: 50BACD51568623C0A55BE94 - conect the href with <a href="50BACD51568623C0A55BE94"><img src="viti2.jpg" width="900" height="323" /> in the viti.html file. - in iOS works perfect, no problem at all. - in Android i click the image and the get the "something's not right" screen.
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
06/24/13 03:38 PM (12 years ago)
Can you paste your logcat output?
 
Pablo
buzztouch Evangelist
Profile
Posts: 51
Reg: Nov 09, 2011
Argentina
510
like
06/24/13 03:46 PM (12 years ago)
Yes, sure: 06-24 19:44:50.980: W/ZZ(16112): BT_activity_root:onCreate 06-24 19:44:51.010: W/ZZ(16112): BT_activity_root:loadAppData 06-24 19:44:51.010: W/ZZ(16112): BT_device:updateDeviceConnectionType: ConnectionType: WIFI 06-24 19:44:51.010: W/ZZ(16112): BT_device:updateDeviceSize This device has a screen size of: 720 (width) x 1280 (height). 06-24 19:44:51.010: W/ZZ(16112): BT_device:updateDeviceSize This application considers this to be a "large device" 06-24 19:44:51.015: W/ZZ(16112): BT_device:updateDeviceSize This device is in "portrait" orientation. 06-24 19:44:51.015: W/ZZ(16112): BT_activity_root:loadAppData loading BT_config.txt from /assests folder in Eclipse project... 06-24 19:44:51.425: W/ZZ(16112): BT_fileManager: readTextFileFromAssets: "/BT_config.txt" 06-24 19:44:51.440: W/ZZ(16112): BT_activity_root:loadAppData loaded BT_config.txt from /assets folder successfully... 06-24 19:44:51.440: W/ZZ(16112): BT_application: getDataURLFromAppData 06-24 19:44:51.445: W/ZZ(16112): BT_activity_root:loadAppData BT_config.txt file does use a dataURL for remote updates... 06-24 19:44:51.445: W/ZZ(16112): BT_fileManager: readTextFileFromCache: "cachedAppConfig.txt" 06-24 19:44:51.450: W/ZZ(16112): BT_activity_root:loadAppData reading cachedAppConfig.txt from the applications download cache... 06-24 19:44:51.450: W/ZZ(16112): BT_activity_root:loadAppData ignoring BT_config.txt file in Eclipse project... 06-24 19:44:51.450: W/ZZ(16112): BT_application: validateApplicationData 06-24 19:44:51.455: W/ZZ(16112): BT_activity_root: application data appears to be valid JSON... 06-24 19:44:51.455: W/ZZ(16112): BT_application: parseJSONData 06-24 19:44:51.460: W/ZZ(16112): BT_application: parsing core settings... 06-24 19:44:51.460: W/ZZ(16112): BT_application: parsing themes... 06-24 19:44:51.460: W/ZZ(16112): BT_application: parsing tabs... 06-24 19:44:51.460: W/ZZ(16112): BT_application: parsing screens... 06-24 19:44:51.460: W/ZZ(16112): BT_application:parseJSONData done parsing application data 06-24 19:44:51.560: W/ZZ(16112): BT_activity_root:transitionToAppHomeScreen 06-24 19:44:51.560: W/ZZ(16112): BT_activity_root:transitionToAppHomeScreen non-tabbed home screen. 06-24 19:44:51.560: W/ZZ(16112): BT_application: getHomeScreen 06-24 19:44:51.855: W/ZZ(16112): BT_activity_base:onCreate (BASE CLASS) 06-24 19:44:51.865: W/ZZ(16112): BT_activity_base:Device owner has rejected Push Notifications 06-24 19:44:51.875: W/ZZ(16112): Cr_menu_advanced:onCreate 06-24 19:44:51.875: W/ZZ(16112): BT_viewUtilities:updateBackgroundColorsForScreen with nickname: "Menu" 06-24 19:44:51.875: W/ZZ(16112): BT_viewUtilities:updateBackgroundColorsForScreen: setting background color to: "#FFFFFF" 06-24 19:44:51.880: W/ZZ(16112): BT_viewUtilities:getNavBarForScreen building nav. bar for screen with nickname: "Menu" 06-24 19:44:51.880: W/ZZ(16112): Cr_menu_advanced:backgroundWorkerThread using image from project bundle: "bg.jpg" 06-24 19:44:51.900: W/ZZ(16112): BT_viewUtilities:getNavBarForScreen Hiding nav. bar for screen with nickname: "Menu" 06-24 19:44:51.900: W/ZZ(16112): BT_fileManager:deleteFile F7E526F9D5829AC25711563_screenData.txt 06-24 19:44:51.925: D/AbsListView(16112): Get MotionRecognitionManager 06-24 19:44:51.940: W/ZZ(16112): hasImage is:YES 06-24 19:44:51.940: W/ZZ(16112): Cr_menu_advanced: header image exists in resources folder: "menu.png" 06-24 19:44:51.940: W/ZZ(16112): Cr_menu_advanced:setHeaderDrawble 06-24 19:44:51.940: W/ZZ(16112): Cr_menu_advanced:onStart 06-24 19:44:51.940: W/ZZ(16112): Cr_menu_advanced:onStart (BASE CLASS) 06-24 19:44:51.940: W/ZZ(16112): Cr_menu_advanced: start GPS is set to YES in the applications configuration data, trying to start GPS 06-24 19:44:51.945: W/ZZ(16112): Cr_menu_advanced: user has not prevented the GPS from starting using a BT_screen_settingsLocation screen 06-24 19:44:51.945: W/ZZ(16112): Cr_menu_advanced:startListening (started listening for location changes) 06-24 19:44:51.990: W/ZZ(16112): Cr_menu_advanced:startListening asking for Network (Cell Tower or Wi-Fi) location updates... 06-24 19:44:51.990: W/ZZ(16112): Cr_menu_advanced:onStart using data from app's configuration file 06-24 19:44:51.990: W/ZZ(16112): Cr_menu_advanced:parseScreenData 06-24 19:44:51.990: W/ZZ(16112): parsing1 06-24 19:44:51.990: W/ZZ(16112): parsing2 06-24 19:44:51.990: W/ZZ(16112): parsing4-0 06-24 19:44:51.990: W/ZZ(16112): parsing4-1 06-24 19:44:51.990: W/ZZ(16112): parsing4-2 06-24 19:44:51.995: W/ZZ(16112): parsing4-3 06-24 19:44:51.995: W/ZZ(16112): parsing4-4 06-24 19:44:51.995: W/ZZ(16112): parsing4-5 06-24 19:44:51.995: W/ZZ(16112): parsing4-6 06-24 19:44:51.995: W/ZZ(16112): parsing5 06-24 19:44:51.995: W/ZZ(16112): parsing6 06-24 19:44:51.995: W/ZZ(16112): parsing8 06-24 19:44:51.995: W/ZZ(16112): parsing9 06-24 19:44:51.995: W/ZZ(16112): ending parse screen data, going on to set header drawable 06-24 19:44:51.995: W/ZZ(16112): Cr_menu_advanced:onResume (BASE CLASS) 06-24 19:44:51.995: W/ZZ(16112): Cr_menu_advanced:reportToCloud 06-24 19:44:51.995: W/ZZ(16112): Cr_menu_advanced:onResume 06-24 19:44:52.000: W/ZZ(16112): Cr_menu_advanced:setBackgroundImage: returned to UI Thread... 06-24 19:44:52.000: W/ZZ(16112): Cr_menu_advanced:setBackgroundImage: setting background image 06-24 19:44:52.000: W/ZZ(16112): Cr_menu_advanced:reportToCloudWorkerThread getting lastModified from reportToCloudURL http://www.pablovydra.com/BT/api/app/?command=reportToCloud&appGuid=EADA6C57D2FCC91EF6A1DFC37&apiKey=73A0D2D34FF9F57777647BE&apiSecret=440699C81461274AE2B23B4&deviceId=352601323183748&deviceLatitude=&deviceLongitude=&deviceModel=samsung-GT-I9300&userId=&currentMode=Design 06-24 19:44:52.000: W/ZZ(16112): BT_downloader:downloadTextData from URL: http://www.pablovydra.com/BT/api/app/?command=reportToCloud&appGuid=EADA6C57D2FCC91EF6A1DFC37&apiKey=73A0D2D34FF9F57777647BE&apiSecret=440699C81461274AE2B23B4&deviceId=352601323183748&deviceLatitude=&deviceLongitude=&deviceModel=samsung-GT-I9300&userId=&currentMode=Design 06-24 19:44:52.035: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.050: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.060: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.065: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.070: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.090: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.095: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.105: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.110: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.115: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.120: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.125: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.135: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.140: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.160: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.170: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.175: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.185: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.190: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.195: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.200: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.205: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.210: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.220: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.225: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.230: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.235: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.240: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.270: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.275: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.280: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.290: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.295: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.300: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.310: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.335: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.340: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.345: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.350: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.355: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.360: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.365: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.375: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.380: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.385: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.390: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.395: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.400: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.405: W/ZZ(16112): Cr_menu_advanced: TitleDescIcon selected 06-24 19:44:52.980: W/ZZ(16112): Cr_menu_advanced:handleReportToCloudResults appLastModifiedOnServer (value on server): Mon, 24 Jun 2013 22:39:59 -0700 06-24 19:44:52.980: W/ZZ(16112): BT_fileManager: readTextFileFromCache: "appModified.txt" 06-24 19:44:52.990: W/ZZ(16112): Cr_menu_advanced:handleReportToCloudResults previousModified (value on device): Mon, 24 Jun 2013 22:39:59 -0700 06-24 19:44:52.990: W/ZZ(16112): BT_fileManager: saveTextFileToCache: appModified.txt 06-24 19:44:52.990: W/ZZ(16112): Cr_menu_advanced:handleReportToCloudResults server data not changed, no refresh needed 06-24 19:44:57.330: W/ZZ(16112): parsing7 06-24 19:44:57.330: W/ZZ(16112): Cr_menu_advanced:handleItemTap loads screen with itemId: "8C2D6E7B6FC60F93BE91D29" 06-24 19:44:57.335: W/ZZ(16112): BT_application:getScreenDataByItemId with itemId: = "8C2D6E7B6FC60F93BE91D29" 06-24 19:44:57.335: W/ZZ(16112): BT_application:getScreenDataByItemId with itemType: "Cr_html_pro" with nickname: "vitivinicola" 06-24 19:44:57.335: W/ZZ(16112): BT_act_controller:loadScreenObject for screen with itemId: "8C2D6E7B6FC60F93BE91D29" and itemNickname: "vitivinicola" and itemType: "Cr_html_pro" 06-24 19:44:57.800: I/Choreographer(16112): Skipped 30 frames! The application may be doing too much work on its main thread. 06-24 19:44:57.815: W/ZZ(16112): Cr_menu_advanced:onPause (BASE CLASS) 06-24 19:44:57.815: W/ZZ(16112): Cr_menu_advanced:onPause 06-24 19:44:57.885: W/ZZ(16112): BT_activity_base:onCreate (BASE CLASS) 06-24 19:44:57.890: W/ZZ(16112): BT_activity_base:Device owner has rejected Push Notifications 06-24 19:44:57.910: W/ZZ(16112): BT_screen_htmlDoc:onCreate 06-24 19:44:57.915: W/ZZ(16112): BT_viewUtilities:updateBackgroundColorsForScreen with nickname: "vitivinicola" 06-24 19:44:57.915: W/ZZ(16112): BT_viewUtilities:getNavBarForScreen building nav. bar for screen with nickname: "vitivinicola" 06-24 19:44:57.915: W/ZZ(16112): BT_screen_htmlDoc:backgroundWorkerThread using image from project bundle: "bg.jpg" 06-24 19:44:58.080: D/dalvikvm(16112): GC_CONCURRENT freed 1372K, 10% free 42327K/46791K, paused 17ms+19ms, total 157ms 06-24 19:44:58.105: I/webclipboard(16112): clipservice: android.sec.clipboard.ClipboardExManager@4342e008 06-24 19:44:58.140: V/webkit(16112): BrowserFrame constructor: this=Handler (android.webkit.BrowserFrame) {4327c3e8} 06-24 19:44:58.540: W/ZZ(16112): BT_screen_htmlDoc: loading from BT_Docs: vitivinicola.html 06-24 19:44:58.610: W/ZZ(16112): BT_screen_htmlDoc:onStart (BASE CLASS) 06-24 19:44:58.615: W/ZZ(16112): BT_screen_htmlDoc: start GPS is set to YES in the applications configuration data, trying to start GPS 06-24 19:44:58.625: W/ZZ(16112): BT_screen_htmlDoc: user has not prevented the GPS from starting using a BT_screen_settingsLocation screen 06-24 19:44:58.630: W/ZZ(16112): BT_screen_htmlDoc:startListening (started listening for location changes) 06-24 19:44:58.650: W/ZZ(16112): BT_screen_htmlDoc:startListening asking for Network (Cell Tower or Wi-Fi) location updates... 06-24 19:44:58.650: W/ZZ(16112): BT_screen_htmlDoc:parseScreenData 06-24 19:44:58.655: W/ZZ(16112): BT_screen_htmlDoc:onResume (BASE CLASS) 06-24 19:44:58.675: W/ZZ(16112): BT_screen_htmlDoc:setBackgroundImage: returned to UI Thread... 06-24 19:44:58.675: W/ZZ(16112): BT_screen_htmlDoc:setBackgroundImage: setting background image 06-24 19:44:58.730: I/GATE(16112): <GATE-M>DEV_ACTION_COMPLETED</GATE-M> 06-24 19:44:58.785: W/ZZ(16112): BT_screen_htmlDoc:onPageFinished finished Loading: file:///android_asset/BT_Docs/vitivinicola.html 06-24 19:44:59.035: W/ZZ(16112): BT_screen_htmlDoc:MyPictureListener: onNewPicture 06-24 19:44:59.440: W/ZZ(16112): Cr_menu_advanced:onStop (BASE CLASS) 06-24 19:44:59.440: W/ZZ(16112): Cr_menu_advanced:onStop 06-24 19:45:05.285: V/webview(16112): singleCursorHandlerTouchEvent -getEditableSupport FASLE 06-24 19:45:08.300: V/webview(16112): singleCursorHandlerTouchEvent -getEditableSupport FASLE 06-24 19:45:08.635: W/ZZ(16112): BT_screen_htmlDoc: checking url for native screen 06-24 19:45:08.635: W/ZZ(16112): BT_screen_htmlDocurl is:file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 06-24 19:45:08.640: W/ZZ(16112): BT_screen_htmlDoc: number of childItems is:1 06-24 19:45:08.640: W/ZZ(16112): BT_screen_htmlDoc:starting loop now 06-24 19:45:08.640: W/ZZ(16112): BT_screen_htmlDoc: getting childItem #0 06-24 19:45:08.640: W/ZZ(16112): BT_screen_htmlDoc:url is:file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 and childItem to check is:2F024C2B881F9A7C61BDE85 06-24 19:45:08.645: W/ZZ(16112): BT_act_controller:canLoadDocumentInWebView "file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85" 06-24 19:45:08.700: D/chromium(16112): Unknown chromium error: -6 06-24 19:45:08.700: I/GATE(16112): <GATE-M>DEV_ACTION_ERROR</GATE-M> 06-24 19:45:08.705: V/webkit(16112): reportError errorCode(-1) desc(Se ha producido un error de red) 06-24 19:45:08.745: I/GATE(16112): <GATE-M>DEV_ACTION_COMPLETED</GATE-M> 06-24 19:45:08.790: W/ZZ(16112): :onReceivedError ERROR loading url: file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 Description: Se ha producido un error de red 06-24 19:45:08.790: W/ZZ(16112): :onReceivedError ERROR loading url: file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 Description: Se ha producido un error de red:onPageFinished finished Loading: file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 06-24 19:45:08.855: W/ZZ(16112): :onReceivedError ERROR loading url: file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 Description: Se ha producido un error de red:onPageFinished finished Loading: file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 06-24 19:45:08.860: W/ZZ(16112): :onReceivedError ERROR loading url: file:///android_asset/BT_Docs/2F024C2B881F9A7C61BDE85 Description: Se ha producido un error de red:MyPictureListener: onNewPicture
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
06/24/13 03:58 PM (12 years ago)
Try this: Starting on line 151, replace the "for (...)" statement with this: for (int i = 0; i < childItems.size(); i++){ BT_debugger.showIt(activityName + ": getting childItem #" + i); BT_item tmpItem = childItems.get(i); String tmpItemID = tmpItem.getItemId(); BT_debugger.showIt(activityName + ":url is:" + url + " and childItem to check is:" + tmpItemID); int foundMatch = url.toLowerCase().indexOf(tmpItemID.toLowerCase()); if (foundMatch > -1) { BT_debugger.showIt(activityName + ":found matching url at:" + tmpItemID); String loadScreenWithItemId = BT_strings.getJsonPropertyValue(tmpItem.getJsonObject(), "loadScreenWithItemId", ""); tapScreenLoadObject = BT_appDelegate.rootApp.getScreenDataByItemId(loadScreenWithItemId); BT_act_controller.loadScreenObject(thisActivity, screenData, screenData, tapScreenLoadObject); return true; } }
 
Pablo
buzztouch Evangelist
Profile
Posts: 51
Reg: Nov 09, 2011
Argentina
510
like
06/24/13 04:03 PM (12 years ago)
works perfect! really thanks Chris!
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
06/24/13 04:04 PM (12 years ago)
no problem - Once the plugin market is accepting uploads again, I'll try to remember to pass this update along.
 

Login + Screen Name Required to Post

pointerLogin to participate so you can start earning points. Once you're logged in (and have a screen name entered in your profile), you can subscribe to topics, follow users, and start learning how to make apps like the pros.