	
	UPDATE: October 11, 2011. 
	buzztouch v1.5 "Ketch" for Android

	BE SURE TO READ THIS DOCUMENT COMPLETLEY SO YOU KNOW WHERE YOUR PROJECT STANDS 

	
	Improvements, Progress: 
	- Button screens. This screen should work as expected. This means menu lists and menu buttons
		(the bulk of the app's navigation) should now work.
	-BT_downloader.java. Lots of improvements in this file. Speed!
	
	-Other screens: We are still preparing Galleries, Audio, Video and other screen types
		for the phase 2 release. With BT_screen_menuButtons.java done the other screens should come
		quicker ;-)
	
	
	Beta-Testers: Please continue to focus on the Download, Compile, Install processes. Plus, kindly
	test the Menu Lists and Menu Button screens. These two primary navigation screens should work
	as expected.
	----------------------------------------------------------------------------------------------------------

	UPDATE: September 20, 2011. 
	buzztouch v1.5 "Ketch" for Android

	BE SURE TO READ THIS DOCUMENT COMPLETLEY SO YOU KNOW WHERE YOUR PROJECT STANDS 

	We released phase 1 about 5 days ago to test the download, compile, and install process. 
	It went well but we did make some changes already. Primarily, where images and assets 
	are saved in the project. As it turns out, Android's Drawable Directory	(see your 
	project in Eclipse) is a nightmare! We have implemented a BT_Images folder 
	in the /assets directory. Great	work Beta Testers. 
	
	All your images should be in the /assets/BT_Images folder with the exception of 
	your app's icon. Android requires your icon to be in the Drawables directory. 
	
	Icons: The BT_Images directory has lots of icons that you may or may not use. These 
	match the control panel options so you can make a change on the control panel without 
	having to add new icons each time you compile your app. However, most of these can probably 
	be removed? Remove the icons you don't plan to use to make your project smaller. ALL IMAGES 
	in the BT_Images folder that the project needs are prefixed with 0_bt_image. DO NOT REMOVE 
	any images from the BT_Images folder that beging with "0_bt" This naming convention is 
	little trick to keep them at the top of the list when your sort ;-)
	
	Improvements, Progress: 
	-Check for Updates Process: Significant improvement in speed. The JSON parser was painfully 
		slow. Still not as fast as we want.
	-Menu Lists: Improved support for header images, header margins, icons from URL's 
		(caching, fast scrolling list).	Menu Lists should work fine now with the exception of a 
		few layout properties. Anyone have some ideas about	what we should do with the "rounded corners" 
		option in the control panel? Android does not have such a concept built-in like iOS and we're 
		afraid hacking together a rounded listView would NOT-android, get it?  
	-Maps: Implemented tappable pins and other basic functions. Maps should work fine now.
	-File Manager (BT_fileManager.java): Delete File was broken. Added getBitmapByName method 
		to fetch a bitmap from the BT_images folder.
	-Data (BT_activity_root.java): Updated loadAppDataWorkerThread to speed up JSON parsing. 
	-GPS (BT_activity_base.java): Improved the GPS "listener" to use Cell / Wi-Fi towers 
		if user turned off GPS. Neither GPS nor Network location services will turn on if the user
		has prevented it and / or if you have "turn on GPS" to "0" (off) in your config. data. 
		All apps should provide a way for users to turn off location services if your app has the
		GPS to "on." Add a Settings - Allow GPS screen to one of your menus.
	
	-Other screens: We are still preparing Galleries, Button Menus, Audio, Video and other screen types
		for the phase 2 release.
	
	
	Beta-Testers: Please continue to focus on the Download, Compile, Install processes. It's important that this work
	as efficiently as possible before we start rolling out screens that rely on the app's data ;-)
		

	----------------------------------------------------------------------------------------------------------
	September 15 2010:
	buzztouch v1.5 "Ketch" for Android


 	BECAUSE YOU ARE ON OUR EARLY ADOPTER LIST IT'S ASSUMED THAT YOU UNDERSTAND THE
 	NATURE OF BETA SOFTWARE
	Caps is intentional, yes, we have to yell sometimes ;-)
	
	
	This is download 1 of 3 planned during the next few weeks.
	-----------------------------------------------------------------------------------
	
	Download 1: This first phase will allow us to get the code in your hands and begin 
	figuring out how it works. Very few screen types are supported in this first download. 
	The idea is to focus on the build, compile, launch process. 
	
	Download 2: The next download will focus on individual screen types. We'll continue to
	integrate our work on individual screens and get them to you soon. This phase will allow
	us to move beyond the download, build, launch worries and focus on features. 
	
	Download 3: Audio and Advertisement support. The last phase will include support for 
	ads and audio. This should be the final phase. 
	
	It's important to understand how challenging it is for a small group (we are a few-and-a-half folks)
	to roll out beta software and balance the expectations of thousands of aspiring developers.
	This beta release aims to accomplish several thing things but NOT everything.
	
	1) 	Explore: We need your help as an Early Adopter and trust you to begin tinkering, exploring, 
		and learning how the package is structured. Your Android project is organized in 
		a logical and efficient way, but it's important that you take some time 
		to understand how it works. 
		
	2)  Limit: Many screen-types are yet to be implemented. This is intentional. This first release
		hopes to help us work out some anticipated kinks related to the download and build process. 
		Minimizing how much code we release helps us tremendously. Don't worry, lots of new code
		and screen-support will be coming very quickly. Expect a new download every few days 
		for the next few weeks? For now, you can help us by commenting and asking questions
		related to the way your app builds and runs, not about what screen "isn't done yet."
		
		Begin by working with Menu Lists: These features should work:
			Menu Lists
			Custom URL Screens
			Maps
			Setting Device Info
			Settings Allow GPS
			Login Screens
			Call Us
			Email Us
			Text US
			Share Email
			Share SMS
			
			Quizzes, Galleries, Image Uploading, Button Menu's and RSS Readers will be
			included in Phase 2.
		
		
		
	3)  Core Functions: This release should communicate with your buzztouch control panel (or your
		self-hosted configuration file) and successfully compile, launch, and run without any
		errors. Errors are different than unimplemented features. Screens that are unimplemented 
		will show a message. We will learn a lot from the many thousands of Android devices that
		begin running your app. The amount of work we do on the backend is far greater than the
		amount of work we do on the front end, and we can't roll-out all the fun stuff before we
		do a little house cleaning - we'll know what to clean real soon! 
		
	4)  Console Output (LogCat): Get good at running the console in Eclipse so you can see 
		what's happening while your app runs. We went through great pains to write literally
		thousands of lines of "code" meant only for the developer - you. When you find 
		something you think we can learn from, paste a small snippet of your consoles 
		output on the forum. Pasting a GIANT console output is bad and almost useless. 
		Clear the console, tap a button or screen, paste that small amount of output that 
		displayed for "that single action." 
		
		It's a bit tricky to display the Console. Called the LogCat in Android world. 
		Choose Window > Show View > Other > Android > LogCat. When viewing the output, 
		use the "W" button to show only the buzztouch output. All the output created by your
		app begins with "ZZ" and each line of output will tell you the class file and the method. 
		IMPORTANT: If you're running on a device the LogCat process does consume memory and may
		affect the performance of your app. You can turn off debugging by setting showDebugOutput
		to "false" in your app's delegate.java file.
		
Images / Documents: When adding images and files to your project, be sure to add them to the
appropriate directory. iOS allows you to cheat a little - not so with Android.

/assets/BT_Docs - for documents, javascript and style sheets. Also, any images you use in HTML you
include in your project must be in the BT_Docs folder

/assets/BT_Video - you get it.
/assets/BT_Audio - you get it.

Images for screens that are NOT part of an HTML document go in the /res/drawable folder.
Tip: Eclipse will not allow an image to be in the drawable directory that doesn't have a valid
file name. No space, caps, etc, etc. BUMMER. This means you may end up having to rename some
images if you're using one configuration file for both iOS and Android. 		
		
How it Works: This basic info should help you if you're interested in rolling your own app
at a faster pace than we can release code. In other words, if you want to "fix" 
something you need NOW, here's how to begin....

A) 	App Launches. All apps begin by loading the BT_activity_root.java file. Looking at the 
	AndroidManifest.xml file in your project will show you a list of Activities, 
	BT_activity_root is the "launch activity."
	
	BT_activity_root reads your app's configuration file and works out the base layout. Tabs, 
	no tabs, Splash Screen, your home screen, etc. At this point you app has "loaded" and 
	is running on the device. 
	
B) 	While on your app's home screen (first tab on tabbed apps), use the device's Menu Button
	to show a context menu for the screen you're looking at. The home screen will show a 
	Refresh App Data button. Use this to reload data from your hosted configuration file
	or buzztouch control panel. An automatic update-reminder process is also happening so you
	may be prompted to "refresh" if you make a change in your control panel.

C) 	Additional screens (Activities) all share a common layout-routine and all screens rely on
	two files specific to that screen. A .java file and a layout.xml file. Each screen type
	has a corresponding .java file in the /src directory and a corresponding layout.xml file
	in the /res/layout directory. Tapping a menu-item to load a screen loads the .java code
	and the layout file. 
	
	This means that you can easily "see the code" related to each screen by looking at it's
	.java file and it's layout file. This also means that you can work out an unimplemented screen
	if you want. Again, we'll get all the screen types supported as soon as we get some feedback
	on the download and build process. We learned LOTS when we went through this for iOS and
	we don't want to get the cart in front of the horse. 
	
	You'll be best off making simple apps with LIST MENUs (not button menus) in your control
	panel while we roll this out. Pay special attention to the notes in each file if you think
	something isn't right. This will allow you to have an insiders perspective and help you 
	tons as you implement code we release for each screen type. Heck, you may even finish some
	screens before we do!   
	
		
On with the fun part...

a)  Unzip the downloaded source-code directory to a safe place on your computer. You
	must have Eclipse and the Android SDK installed on your computer to use this software.
	Be sure to download the Google 2.2 API's and Google Maps Libraries and install them
	in your Eclipse environment. You'll need the Google Maps Libraries installed even if you
	don't use any map screens. You can get around this but it's easier to just download them
	so Eclipse + Google play nicely.

b) 	Launch Eclipse and start a new project. Choose New > Android Project from the menu.
	If you don't see the "New Android Project" in the menu, stop now and finish installing the
	Android SDK and Libraries in your Eclipse environment. See Below for more.
	
	1)	Enter a valid project name in the New Android Project dialogue
	2)	Choose "Create Create Project From Existing Source" 
	3)	For location, use the Browse button and navigate to the folder you 
		created on your	computer when you unzipped the archive you got from 
		your buzztouch control panel.
	4) 	Build Target. The Google API's checkbox should automatically select 
		after choosing the source of your new project in step 3. Verify that 
		you are using Google API's Platform 2.2 and API level 8. A common 
		mistake is to assume Android 2.2 API's and Google 2.2 API's are the same, 
		they are not. If you don't see Google API's 2.2 in your list of 
		available Targets see b above - you don't have the necessary 
		SDK components installed. Be sure to include the Google Maps Library when
		you install the components.
	
c) 	Setup an emulator using Google 2.2 API's or connect your own device to your
	computer. Build > Run > Smile. You made something awesome!!!
	
	


End
	

