Discussion Forums  >  Plugins, Customizing, Source Code

Replies: 14    Views: 144

SmugWimp
Smugger than thou...
Profile
Posts: 6316
Reg: Nov 07, 2012
Tamuning, GU
81,410
04/18/14 03:48 AM (10 years ago)

New Plugin: Smugs Location Menu (for BTv3 iOS and Android)

Announcing the release of 'Smugs Location Menu' https://www.buzztouch.com/plugins/plugin.php?pid=384576F43DE832A75A9ABC9 Menu isn't quite accurate. You do NOT want to use this to navigate traditional screens. What it is: The Location Menu allows you to display 'Points of Interest' in a tableView screen. You can sort (ascending or descending) by Name, Category or Distance. You can display locations within a certain distance from the device (miles or kilometers) You can display custom icons with your entries You can perform a 'drill down search' of your location names What it isn't: It isn't easy. If you don't understand 'loadScreenObject', then keep on walking. It isn't a regular menu. Don't buy it if that's what you think. It's not. It *does not* use the control panel for childItems. You *must* create an external childItem file. You *must* use 'loadScreenObject' to navigate to the next screen. Yes it is for both Android and iOS. Movie Demo: https://dl.dropboxusercontent.com/u/115208762/SmugLocationMenuDemo.mov I've put a lot of hard work into getting this to work on both Android and iOS, and as such, the effort is reflected in the price. It's probably my most expensive plugin to date. However, I find for the benefits you gain, it's well worth the price of admission. https://dl.dropboxusercontent.com/u/115208762/swlm-1.png https://dl.dropboxusercontent.com/u/115208762/swlm-4.png Cheers! -- Smug
 
PaddyO
Lost but trying
Profile
Posts: 189
Reg: Sep 11, 2013
Geelong
5,190
like
04/18/14 06:23 AM (10 years ago)
Wow, so THAT'S what you've been doing in between ruling the forums! Sounds awesome Smug... I think there'll have to be at least some features in there that I can use. :) Hope you get lots of uptake. Cheers Paddy.
 
KennedyE
Android Fan
Profile
Posts: 373
Reg: Dec 07, 2013
PH, Nigeria
3,730
like
04/18/14 06:26 AM (10 years ago)
Just bought it, will test soon, Thanks Smug for the Android version also.
 
KennedyE
Android Fan
Profile
Posts: 373
Reg: Dec 07, 2013
PH, Nigeria
3,730
like
04/18/14 06:56 AM (10 years ago)
"This is an ** advanced plugin ** " I think adding a little documentation will help...
 
MacApple
Apple Fan
Profile
Posts: 4674
Reg: Oct 25, 2010
USA
61,140
like
04/18/14 06:58 AM (10 years ago)
Most awesome cross platform goodness, nice one!
 
SmugWimp
Smugger than thou...
Profile
Posts: 6316
Reg: Nov 07, 2012
Tamuning, GU
81,410
like
04/18/14 07:31 AM (10 years ago)
@Kennedy… That's sort of the problem. There isn't really that much documentation on external childItem files, or loadScreenObject. That's why I call it an 'advanced' plugin. For those folks who run a self hosted server and can generate json data from their MySql server, it's a rather nifty plugin. But it requires a bit of tuning to get it right; something that is 'normally' done when using External ChildItems and loadScreenObject. And you don't 'have' to generate the json from a database; it can be a text file. But the formatting of the data still needs to be done, and again testing and building with 'loadScreenObject' will be key. I will be making some documentation available 'eventually', and for the moment 'everything but' the childItems is fairly straight forward. And with respect to the childItems, what can I say… people are going to have to do their homework. It's not for everyone. Cheers! -- Smug
 
CMCOFFEE
Android Fan
Profile
Posts: 2017
Reg: Jan 04, 2013
Amarillo, Texas
26,670
like
04/18/14 07:59 AM (10 years ago)
Man this is perfect for my local app.Nice work!
 
nadthevlad
Code is Art
Profile
Posts: 1025
Reg: Jun 07, 2012
Denver
21,850
like
04/18/14 08:25 AM (10 years ago)
Cool beans. Like the warning.
 
GoNorthWest
buzztouch Evangelist
Profile
Posts: 8197
Reg: Jun 24, 2011
Oro Valley, AZ
1,000,000
like
04/18/14 08:40 AM (10 years ago)
Very sweet! Will be perfect for a project that I'm working on. Can't wait to give it a spin. And I love that it's cross platform! Mark
 
fusionsch
I hate code!
Profile
Posts: 516
Reg: Dec 28, 2010
Montreux Switze...
11,610
like
04/29/14 01:28 AM (10 years ago)
Hey, Smug, congratulations for your plugin and for your sense of humor! Scary but enticing... Struggling with this plugin is a good XIB and JSON lesson! No headache yet, but allow me a revenge: when no POI is within range, the SW_distance_m.png or SW_distance_k.png should be hidden... Any tweak to achieve this? Cheers Jack
 
SmugWimp
Smugger than thou...
Profile
Posts: 6316
Reg: Nov 07, 2012
Tamuning, GU
81,410
like
04/29/14 09:11 PM (10 years ago)
Fusion: You know, that's not a bad idea. I've found a few issues working with Sue Metoxen on it the other day, and will be updating it soon… I'll incorporate that into the mix as well. Thanks for the idea… Sometimes the obvious things aren't so obvious to me :) Cheers! -- Smug
 
fusionsch
I hate code!
Profile
Posts: 516
Reg: Dec 28, 2010
Montreux Switze...
11,610
like
04/29/14 11:38 PM (10 years ago)
Cool! I have just a little question (or challenge) more... So... we have a plugin that triggers another plugin with the magic of JSON and loadScreenObject... In your sample it loads the Location Map plugin. But it can load any plugin, I've tested a Screen Data URL JSON that loads the Custom URL plugin, and it works great. Now, the tricky question: is there any way to have 'cascading' loadScreenObject functions with JSON? In other words: a Screen Data URL JSON loading a list of POIs loading the Location Map plugin with a Right Button in the Top Navigation Bar loading a Custom URL plugin? My 'monkey method' (aping the real coders) is way beyond the ability to achieve this... Cheers Jack
 
SmugWimp
Smugger than thou...
Profile
Posts: 6316
Reg: Nov 07, 2012
Tamuning, GU
81,410
like
04/30/14 12:10 AM (10 years ago)
Well, yes. But as you've implied; it can be a little tricky. For the most part, you just want to keep it organized. And it would be a heck of a childItem file. What I would suggest would be something along the lines of "cascading dataURL's", and those data URL targets could contain enough JSON/loadScreenObject info to get to the next screen… It would keep things a bit tidier, and easier to troubleshoot if something wasn't cooperating. What it would sort of look like is, your 'SLM' (SmugLocMenu) screen would have one or more items. Any one of those item's 'loadScreenObject' data would contain the information about the next screen (for that item). And 'in' that configuration for the next screen, you also designate a 'dataURL' or 'localFilename' to more external childItems, that the next screen would handle. In 'that' external childItem file, would be the loadScreenObject info for the *next* screen, and so on and so forth… Each loadScreenObject data would contain a dataURL (or localFilename) that would contain the dataURL (or localFilename) for the next file… cascading from screen to screen. Having a right menu button is easy enough; just add the appropriate json to the screen config. And it can all be done in files, but this sort of thing lends very well to a php/mysql script. What I will typically do is manually build '1' screen in the control panel 'as a template' and then nab the json configuration, and use that to 'build' my loadScreenObject, substituting different values for the different screens and stuff... Cheers! -- Smug Just as a 'by the way'… It's not like I 'built' loadScreenObject into my plugin… that's intrinsic with Buzztouch. 'any' buzztouch plugin can utilize loadScreenObject, as well as loadScreenById (the usual) or loadScreenByNickname (not as usual). loadScreenObject is a little understood method that *I* think is the cat's meow, one of BT's most powerful, and underutilized tools. I'm trying to get it a bit more 'humanized' so that people can understand the power and flexibility of loadScreenObject. For location based apps, it's really the only way to go.
 
fusionsch
I hate code!
Profile
Posts: 516
Reg: Dec 28, 2010
Montreux Switze...
11,610
like
04/30/14 02:15 AM (10 years ago)
Thanks for all these precisions! With loadScreenObject, I just peep into the keyhole but I see amazing possibilities... You're quite right, it's incredibly powerful... I can somehow 'visualize' your solution for 'cascading' loadScreenObject methods, but I'm unable to understand how to achieve it, unfortunately... I've created 2 php/mysql scripts to pull the data of my POIs and format it as JSON (one triggering Location Maps, the other triggering Custom URLs). I saved the result of both queries as local .txt files, as there are some 250 POIs (some 500k altogether: too much if the user has a bad mobile network). If I want to 'mix' all this, I have to add in the PHP all the 'navBarRightButtonType, navBarRightButtonTapLoadScreenNickname, navBarRightButtonTapLoadScreenItemId and navBarRightButtonTapTransitionType' stuff... but then? Substitute 'navBarRightButtonTapLoadScreenNickname and navBarRightButtonTapLoadScreenItemId' with some 'loadScreenObject' syntax pulling a php/mysql script from my server to create dynamically another JSON? If it doesn't steal too much of your time, can you give me a sample of the correct JSON syntax to achieve this? Or just a sample of 'a heck of a childItem file' including all of it in a single JSON to be used as dataURL in the SLM? (as I shall probably only use local files to minimize download delays) Thanks for any help... but don't spend too much of your time for it! Cheers Jack
 
benedettoapp
Lost but trying
Profile
Posts: 139
Reg: Jun 22, 2013
Italy
6,340
like
05/29/14 02:28 PM (9 years ago)
Well I like your plugin, but please when you make the documentation make it for people like me that want to use it but have no idea of childItem and/or external loadScreenObject, i know nothing about those things and no php, but if you make a documentation with samples i will figure it out.
 

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.