iOS App Approved in Three Days

It took Apple 20 hours to reach the In Review status for a newly submitted app. The review phase lasted three hours — the app was rejected because of small fonts for iPad. After submitting new build and version it again waited for review, but only for an hour. The review phase now took only ten minutes and the app was approved.

This is not exactly a “1 day” process, more of a “3 day” process, but still very good.

The app, by the way, is called Gastritis Help. Choose your symptoms and choose remedies from various alternative healing methods such as Homeopathy, Ayurveda, home remedies etc. to decide upon your therapy. The link for the app store is:

The link for the Android version of the app is:

List Of My Services and Prices

Here is a list of my services and prices, mainly for apps but a few related areas as well

Turn your Kindle ebook into an Android app

You have already published a Kindle ebook, it is live in the Amazon Kindle store and you have all the files you used to publish it there.  That is a start for me and we should decide what is the purpose of that app. Some ideas:

cross promotion with your other apps and sites,
promotion of your Kindle ebooks,
monetisation through ads in the app,
forming an email list etc.

The price for this kind of service starts at $300 for Android but the final price can be greate, depending on what else needs to be done to make the app useful.

Turn your Kindle ebook into an iOS app

Similar to previous, starts at $300 and up.

Turn your Kindle ebook into both an Android and iOS app

I can derive apps for both Android and iOS from one kernel so ordering both at the same time can be somewhat cheaper than just a double price for one platform.

Please note that this does not mean that for $600 you can have two finished apps. There are other costs to incur, maybe a new piece of software needs to be written to accommodate the requirements of your app, the app may need new graphic design, it also needs to be submitted to the stores, which costs extra and so on.

Create a showcase app for you and your company — turn your site into an app

Yeah, sites can be “mobile” but the only real thing is an app designed for that kind of device, in the native language of the device.  In this “site to app” service, I’d take most of the content from your site and make it available on the device. When you publish a new article on your blog, it should appear automatically in the app.

Prices for this kind of service start at $500.

Create a professional app for you

Like the previous, but enriched with live RSS feeds, direct posting to Twitter and Facebook from the app, YouTube videos, your blog, search within the app, live accounts within the app (register, forget password etc.) and so on. The price would start at $900.

Create a large, new, original, one of a kind app for you

You have a great new idea, a new angle on an old idea, whatever. You will probably also want everything in the “professional” app and more. Prices for this kind of originality start at $3000 per app per platform.

Create a back end plugin in PHP for the plugins for Android and iOS

If the plugin needs to access data on the server, add another $300 to the mix. So, for example, plugins for both Android and iOS accessing the same database through PHP, would cost $$300 + $200 + $300 = $800.

Publish your Android app to your account in the Google Play Store

Once the app is finished and you agree that it is all you wanted it to be (under the circumstances and for the money involved), the app needs to be published in the store. There are two store of general interest, Google Play for Android and App Store for iPhone / iPad. To get a finished app published in the requires a manual procedure that spans a couple of hours of work — running the app, testing it, catching graphics from the app, entering description and other details in the store, creating appropriate icons and uploading them to the store, creating a new version of the app and so on. It tends to be an invisible part of app creation, but sometimes can take a lot of time and the stores are getting tougher all the time.

Frequently, that includes the need to repeat parts of the process and if the app was rejected, figuring out why and how to mend it — and then go through all of the steps of uploading it to the store AGAIN. So it has to be paid as many hours can be spent in that, rather unproductive way.

The price per submission starts at $100.

Publish your iOS app to the App Store

More or less the same as above.

Publishing ebooks to Amazon Kindle store

Kindle ebooks are not apps but share many of the similar steps in the process of preparation and publishing. Prices for this start at $300.

Publishing paper books on CreateSpace (Amazon)

Ideally, you already have a Kindle ebook ready and you want to offer it in paper. The prices for this also start at $300.

Create a WordPress site for your apps business

Another time consuming set of tasks. Prices start at $300.

Create promotional videos for your app

This is optional in theory, but very much needed these days. Visitors of app stores are getting pickier than ever and want to see the video before downloading anything. For Androd, the video can be a couple of minutes long and the rules are not so strict. The video will reside on YouTube and may serve as a generator of traffic in itself.

For the App Store, the video resides on Apple servers and must be no longer than 30 seconds, and the rules are stricter than for a general YouTube video.

YouTube Marketing for your apps, sites, ebooks etc.

While Apple is somewhat strict about their apps promotional videos, there’s nothing to stop you from making a promotional video or two and put on YouTube. The price for this starts at $200.

Email marketing for your apps

The money is in the list, remains as true as always. While it is not much of a problem to put a form to gather the email address into the app, the real power of email marketing lies in email autoresponders, which will send your predefined selling messages to the owners of those email addresses. The only way to be efficient with autoresponders is to use a paid service and to set it up, takes time and that is what you would be paying under this service on this site. The prices start at $200.

Create AdMob ads in your app

One way to monetize your app is to use ads. To really make money with ads, you should have a very popular app, however, you will get some money in every case you implement ads. Technically, putting ads into the app is sometimes easy and sometimes not, depending on many things. If it’s bound to consume my time, it must be a paid service and the prices start at $200 (but what this really entails must be agreed upon on the spot, for each particular app.).


Hosting with an Internet provider

If you already have your own domain / site, that can do. The hosting service must support PHP, MySQL cPanel, HTML, Apache and so on, but most hosting services will do that already (if its not a Windows server). You will pay monthly to the hosting provider, depending on the type of account, you will pay from 10-odd buck up to $50 or $97 per month.


Porting Kindle Ebooks To Google Play and App Stores, in English and Chinese

I have successfully ported my own Kindle books to apps and I have done that for other publishers. Here is an example of my work for another publisher, for Android:…

End Time Series, Numerical Roots in Bible

Numerical Root Calculator App in the Google Play Store


and here is the same account in the App Store:…/numerical…/id1063163615…

Numbers and Roots of Numbers in the Bible

Numerical Root Calculator iOS App in the App Store


Here is the book that the apps were ported from, in the Kindle store:…/dp/B00IDW25PA/ref=sr_1_1…

Numbers and Roots Of Numbers in Bible English Edition Kindle ebook

Numbers and Roots Of Numbers in Bible English Edition Kindle ebook



Problems in Porting Kindle Ebooks to Android and iPhone / iPad Apps

I have developed specialized software for porting Kindle software files to Android apps in a matter of minutes, back in 2013. So that part was under control and I was confident that I could port anything from HTML files to Android relatively fast. However, although the ebooks in the End Time Series were developed for Kindle, I was presented with MS Word files instead of pure HTML. Word is notorious for its bad handling of the HTML and this time it was no better. I had to manually divide the main book file into chapters, as that is what the Kindle to apps software of mine expects. Then there was the case of several special characters, which look very professional on paper, but just do not matter in HTML pages and apps which read those pages. Converting these characters had to be done from file to file, almost by hand, all of which took much more time than I expected.

Once the initial preparation was done, I still had to insert the codes for software to work with. You would expect that the chapter headers would be properly formatted in Word, but that was not the case either. One chapter was extremely long and that is not readable on most phones (and not even very well on tablets), so I had to divide it into several chapters, again.

Once that was done, and since the ebook was to be converted to both Android and iOS at the same time, I used the same core files for both. With the framework that I used, that is not only possible, but it is the preferred way: once you finish the app on your server, you should be able to publish it without changes on both platforms. Yeah right, when I finished everything, the display of HTML pages, the ones with text from the ebooks, was too small. That is, the fonts were so small that it was virtually unreadable. Once I realized the problem, the easiest way to solve the readability problem was to write a completely new plugin for display of the HTML pages — I called it HTMLBook. It does what Custom HTML, HTML Pro and other similar plugins do — read in the HTML page and do something with it, except that now you also have a new button at the bottom of the screen, which enables to dynamically change the size of font AND reformat the text properly. I shall describe the HTMLBook plugin in another post, but suffice it to say that this was another time sinking hole — just when I thought the app could be published, I had to develop an completely new plugin, for both platforms, with totally different solutions underneath.

Publishing Apps in English and Chinese

These ebooks originated in Chinese and were translated to English, so the publisher wanted to have both versions of the apps, published in both stores. As you can see from the above links, that makes for two English and two Chinese apps for Google Play and another two English and another two Chinese apps for the App Store. The publisher was kind enough to translate several hundred of simple apps messages to Chinese (Downloading, Something is wrong… etc) and of course, he provided the Chinese texts to turn in to apps. Images and text in icons had to be changed but, thankfully, the overall structure of the apps was always one and the same, which made everything not only easier but possible, too.

To translate the Android app, I used the facilities that the Android environment already offers to that purpose — various string constants in two languages, hidden so that the Android software still knows which are the right ones to choose, so that was not so bad. For iOS, the translation almost turned into a hack. Both the English and Chinese the sentences are in the very same plugin, and there is one switch in the control panel of the HTMLBook plugin that selects from English or Chinese version.

The end result, when everything was ready, was automagical. Select English, and you have a complete app in English, both for Android and iOS, and then you select Chinese, and once again, “with a press of a button”, you get the Chinese versions of apps, ready to be published in the stores.

Once these technical hurdles were under way, I had to make the best use of the new apps for the benefit of the publisher.

Should Apps Duplicate Ebooks Or Should They Be Original On Their Own?

In my opinion, apps can do more that ebooks, and to do that, they have to be interactive. The user is automatically interested in anything they type into the app and get the result back, so that’s what I did.

My idea was that you do not simply put the content from the book into the app, as that would not easily pass into the App Store. So I have developed a special plugin that does complex calculations that the Kindle book is based upon and try to interest the potential readers to get the original book in some way.

When someone visits the Kindle part of Amazon, they already have an intention of buying something. Alas, visitors of the app stores usually want things free and it would be really unusual for someone to spend 9 bucks to buy the app with the book content (while they will do that on Kindle). So these apps ended up as “loss leaders”, with three chapters from the books free, with a plugin to calculate free and with a possibility of getting the users email address to form a list.

Other approaches are possible: if the book creates its own universe, the app for the book could a game of some kind, or at least contain a quiz. But for me, forming an email list should be a priority for an app that converts from an ebook. Then you can lower the price for your ebook on Kindle and send the notification or email to your app list… boom!

Maps Overlayed — User’s Manual for the New Plugin

Starting with Relocation Map, we come to the new Maps Overlayed plugin. It is a strict superset of the Relocations Map plugin. Section Map Overlay Behavior provides a switch:

Switch for map overlay behavior

Switch for map overlay behavior

Operate as normal map

If this is chosen, the entire plugin behaves as if it only were the Relocations Map plugin. The data you enter in the Map Locations section will mostly work. None of the sections and fields connected with overlays will work, at all.

Operate as overlayed map

All fields and sections for overlayed data will be avaible and working. This is the default for this plugin.

The next section is

Overlay Coordinates

Overaly coordinates define the rectangle that will be overlayed with active elements.

Overlay coordinates define the rectangle that will be overlayed with active elements.

The basic idea of the Maps Overlayed plugin is to define a rectangle on the map onto we want to concentrate the attention of the viewer. Not only that, we want to overlay — put a picture onto that rectangle — so that we both see elements of the picture and of the map beneath it. Furthermore, the overlay should zoom or relocate with the original map.

If we put a solid picture onto the basic rectangle, we will not achieve much. The goal is to put pins, images, circles… whatever have you as active elements that the user can further touch and see information beyond it. In case of standard pins, it is possible to touch the pin and a further callout shows, with the address of the pin and if we touch the calout, we can be transferred to the screen “beyond the mirror”. In that way, the entire map with pins can act as an elaborate menu, scattered across the screen.

A rectangle is defined as a set of four vertices. Each vertex is a point and here a point is an ordered pair of coordinates. The first number is called the latitude and has a value between 0 and 90 degrees. It usually is a decimal number. If positive, it denotes the Norther hemispere, if negative, it denotes the Souther hemisphere.

The second number is called the longitude and is a number between 9 and 180 degrees. If positive, it is denotes values Eastern of Greenwhich, if negative, it is to the West of Greenwhich.

For instance, 34.4248,-118.5971 is on Norther hemisphere, and to the “left” of the Greenwhich meridian. It is somewhere in North America, to be precise.

Instead of entering all the four vertices of the bounding overlay rectangle, it is customary to enter the middle point of the rectangle, and three vertices, namely. top left, top right and bottom left. The plugin will compute the remaining bottom right vertex, automatically.

If none of these coordinates is entered, the plugin will take the center of the map as a middle point, which will show itself as an empty place over the blue ocean on the map. You will have to pinch the screen many times to see some land, most likely in Africa.

There cannot be an overlay if there is no defining boundary so entering the data into this section is mandatory.

Overlay Image Section

The main purpose of this plugin is to overlay the image onto the map. However, you are not obliged to overlay it — maybe you do not have it yet, may be you have it are don’t find it sufficiently good for publishing yet, or simply, you have already overlayed other elements onto the map and you simply do not need the entire image yet. So, here is the switch:

You may not always want to include the image into overlays

You may not always want to include the image into overlays

If you choose the first option, to include the image, you should also enter the data into the rest of the fields of this section. They are the usual fields for images, so we shall not describe them here.

Overlay Boundary Section

The beauty of the Maps Overlayed plugin is that you can overlay various lines and polygons, not only an image. From the technical standpoint of view, all these shapes will boil down to a series of points, and the software will fill in the space from one point to the next in the series. We get a line, more or less irregular, but useful in many ways. In this section we define one such series of points to be a boundary of the territory that we want to explore with map elements.

It looks stunning and is very useful if you don’t know much about the amusement park, or a zoo, or a children’s playground that you want to visit. Where a standard map might show green for the trees, you may insert the boundary of the estate and make it very clear whether to go further in that direction or not, for example.

First, you can include  or not include the boundary into the overlay.

You do not have to include a boundary, even if you have it ready

You do not have to include a boundary, even if you have it ready

Then you can select the color of the boundary:

Change the color of the boundary at will

Change the color of the boundary at will

In the third field, Overlayed Boundary, we enter the series of points to represent the boudary polygon.

The textarea to define a series of points, which in turn definea boundary

The textarea to define a series of points, which in turn definea boundary

The order of points is important. It is customary for a real boundary to be closed. In order to “close it”, you should put the last point to be identical to the first point in the series.

Each point (a pair of coordinates) must be delineated by a semicolon, like this:

34.4313,-11859890; 34.4274,-11860246; 34.4268,-11860181;

Ideally, the semicolon should be the last character in the series. If it’s missing, the plugin is smart enough to add it before further processing so you are allowed to not enter that last semicolon.

In normal entry fields, you could enter each point in one row, press Enter on the keyboard, enter a new pair of coordinates, press Enter and so on. Unfortunately, the underlying software treats this entry field as a piece of JSON text. See the warning in the following image:

A JSON warning only because I pressed Enter after the second row

A JSON warning only because I pressed Enter after the second row

So, do not press Enter to denote a new row of data, or to separate the points!

The best way to prepare a series of points to serve as a boundary is to use an editor which can show invisible characters. Here is what the text input would look like in program Notepad++ fow Windows, after turning on the option View, Show Symbol, Show All Characters.

In Notepad++ you can clearly see where the problem end of line character lies.

In Notepad++ you can clearly see where the problem end of line character lies.

Deleting these non-printing characters gives us the final string to copy to the the entry field for the boundary:

Cleare the strange characters and get string to enter into the boundary field

Cleare the strange characters and get string to enter into the boundary field

Once you click on the save button, and the green message Saved! appears, the system will have entered the boundary points. You may also want to go to the very last part of the control panel screen and click on the save button for the section JSON Configuration Data (Editable).

Let me repeat that it is of overall importance to see a green message Saved!. If the message is not green but red, the data will not be saved. This is a known bug in the control panel software. In that case, go to the first section at the top of the document, Screen Nickname, and change the nickname a bit. For example, add a digit or two and don’t worry, that will be the only place to make such a change.

 Overlay Route Section

Section for routes is identical to the section for boundaries

Section for routes is identical to the section for boundaries

This is totally the same as the overlay boundary except that instead of a boundary, you take coordinates of any path in between two points in the map. The idea is to show a kind of “driving directions” between two attractions in, say, a zoo. There could be more such routes of interest so a possible expansion for this app would be to take into account several routes instead of just one.

 Overlay Characters — Colored Circles Section

This section will show colored circles on coordinates you decide upon. You enter a color in classical #FFFFFF format, followed by a point. So, it is color, latitude, longitude, followed by a semicolon, and so forth, for as many points that you want.

Points to draw colored circles

Points to draw colored circles

Tutorial For A New Version of the Location Map Plugin for iOS

Here is how to use the current version of the Location Map plugin.

As it stands, this combination works. You will be able to enter new points, connect already existing screens to them, zoom at will, tap to go to the screen from a related pin, and so on. There is only one catch: you have to enter the screen name through the Load Screen With Nickname field after clicking on the name of the element in the Location Title column.

You will notice that the Item Properties screen now contains fields Callout Window Tap Action and Load Screen With Nickname. These are new and I have added them although you did not require it. You will have to enter the name of the screen once again using the Load Screen With Nickname in the Item Properties window, click Save, then Close the window. This will return you to the starting Location Map screen and you will now have to refresh it in the browser in order for the changes to actually take place.

As a bonus, zooming now works perfectly.

This is a workaround, I admit, but it works, albeit the additional several clicks per item in the map.

Here are the screenshots that will make it clearer.

This is the starting point for the plugin. There are three locations already entered and they will appear on the iOS device without problems.

Location Map With Several Pins Already Entered

Location Map With Several Pins Already Entered

Let us enter a new location:

Location Map plugin -- entering the data for a new location

Location Map plugin — entering the data for a new location

Clicking on add will give us the following screen:

Location Map -- a new location has been entered

Location Map — a new location has been entered

Unfortunately, at the current version, this will not be sufficient. Clicking on

Loads Custom HTML Text 7 Reiki

will lead to the following screen:

Location Map plugin -- the data that we entered will not work, the address of the BT item is not right

Location Map plugin — the data that we entered will not work, the address of the BT item is not right

Fortunately, we can enter the correct file address by clicking on the name of the location in the Location Name column:

Location Map plugin -- now we enter the data through the specific screen for the element

Location Map plugin — now we enter the data through the specific screen for the element

We get the following screen:

Location Map -- specific data for onw location

Location Map — specific data for onw location

Everything seems normal, however, we now have the opportunity to properly set the address of the screen to go to. Click on Select:

Location Map -- entering the screen nickname for the second time, to get it remembered

Location Map — entering the screen nickname for the second time, to get it remembered

Now we choose from a list of existing screens:

Location Map plugin for Buzztouch -- choose the same name as already entered in the field

Location Map plugin– choose the same name as already entered in the field

We get back to the screen that we started from, seemingly nothing has changed:

Location Map -- another step in the process of entering the screen nickname

Location Map — another step in the process of entering the screen nickname

Clicking on save and then on close in the upper right corner gets us back to the starting screen of the plugin:

Location Map -- the screen looks normal, but we still have to refresh it

Location Map — the screen looks normal, but we still have to refresh it

To see the effect of the changes, we now have to refresh the screen in the browser. Once you to that, you will see the same screen as in the image above, however, now clicking on the link will lead to the proper screen.

Location Map -- clicking now the link will lead to a proper screen

Location Map — clicking now the link will lead to a proper screen

Here is what we get after clicking on the link:

Location Map -- now properly leading to the screen it was supposed to lead to

Location Map — now properly leading to the screen it was supposed to lead to


Low Carb Recipes And Videos (Android App) — Create Low Carb Menus On the Fly

Low Carb Recipes And Videos (Low Carb Recipes And Videos, Android app) will help you select low carb recipes to form a menu from a list out of 76 recipes preinstalled in this app. The recipes are broken into the following categories:

appetizers, breads, deserts, meat, salads, soups, beverages, condiments, eggs and cheese, poultry, seafood, and veggies.

The first option in the linear menu, however, is Selected Favourites List and you fill it by reading a description of the recipes and choosing a button Put Into Favourites.

Here is what the main menu looks like:

Easy Low Carb Recipes Android app, the main menu

Easy Low Carb Recipes Android app, the main men

Let us demonstrate the selection process, by pressing, for instance, Soups. We get the following screen, with five

Choice of low carb soups

Choice of low carb soups

Once again, let us select Cream of Broccoli Soup and see the text of the recipe:

See the contents of the recipe and eventually select it to the Favourites list.

See the contents of the recipe and eventually select it to the Favourites list.

Tapping the button Put Into Favourites leads to a pop up screen, to confirm or cancel the selection:

To put into the Favourites list or not?

To put into the Favourites list or not?

Pressing Back key leads to the main screen and from the, tapping on Selected Favourites List, we see that now the favourites list contains the latest edition, Cream of Broccoli Soup.

List of Favourite Dishes is now updated to contant the Cream of Broccoli Soup

List of Favourite Dishes is now updated to contant the Cream of Broccoli Soup

Tapping Delete in a line will erase the corresponding dish from the Favourites list, but it will ask you first:

Asks for permission to delete a dish from the Favourites List

Asks for permission to delete a dish from the Favourites List

The result is the list without the item:

The Favourites List is update and has one article less than before

The Favourites List is update and has one article less than before

You will have to manually delete all the dishes in order to start planning a new low carb menu.

Possible Improvements For the Low Carb Recipes And Videos App

Sometimes it lags, does not respond to taps, should be made very responsive in all situations.

To be able to save the chosen menu, name it, select from a list of saved menus.

Combine it with a  calendar, delegate a menu across different dates and meal times.

Have a database of ingredients, compare it to what you have in house and design meals and menus accordingly.

A search feature across all recipes.

Enter weight if you are interested in low carb diet with the goal of losing weight.

It should be made visually much more attractive, by adding images, photos of the meals the users made and so on.

Ambient Music New — A New App, With A New Video Plugin

I have a new app, called Ambient Music New:

If you want to listen to non-intrusive music while you do something else, this Android app is for you. (See the description below.)

From the programmer’s point of view, there are two enhancements to brag about. My plugin called DS_awlProOperaMusic is based on CM_awlPro from the plugin market, however, it adds the

— ability to listen to the entire playlist with one tap of a button, and it introduces

— several commands besides the video playing. You can stop and and pause the video, direct it to an absolute count of seconds within the video, you see the name of the video playing, and you can choose another video to play without stopping the current video.

Here is what the first screen looks like:

The first, the playlist screen of Ambient Musid New app

The first, the playlist screen of Ambient Musid New app

There are separate screens for vertical and horizontal layout. Let us now show the horizontal layout first.

When you tap on a music row in that screen, the video starts playing:



The video starts playing. You see both the video and the surrounding commands.

The video starts playing. You see both the video and the surrounding commands.

When you tap the thin line to the right, you get the list of all other videos to play, so you can select the next video right there, without going to the main menu at all.

The plugin supports three different styles of the player. The first is the default style:

The default style of the video player offers the possibility to play the video full screen.

The default style of the video player offers the possibility to play the video full screen.

This is the minimal player style:

The minimal style player.

The minimal style player.

And finally, there’s the chromeless style:

The chromeless style of video player.

The chromeless style of video player.

The Options button shows the main options from the main menu screen:

Additional options from the Options button on the main menu screen.

Additional options from the Options button on the main menu screen.

Pressing App Policies option will get you a screen like this:

A relatively "normal" menu screen for app policies, leading to screen documents.

A relatively “normal” menu screen for app policies, leading to screen documents.

Of course, there the vertical shots too:

Vertical view of the main playlist screen.

Vertical view of the main playlist screen.

I shall not repeat all of them, but here is another shot, to choose the next video to watch, vertically:

Vertical view of selecting the next video to play.

Vertical view of selecting the next video to play.

Re-skinning This App

This is the simplest possible YouTube displaying app.

This app lends itself well to skinning and re-skinning, and of course, the hallmark of all my Android apps — AdMob banners everywhere, with some (rare) interstitials.

This one app will not make me rich, however, a multitude of these apps will add up, little by little. If you know what people want on YouTube, and if you are careful enough to choose only videos with the standard YT licence, you can get the source code for an app like this from me, for $97, including support. I now accept PayPal.

Meanwhile, download the app, it really is peaceful and relaxing!

If you want to critique the app, let me know through email:

Here is the

Formal Description of the Ambient Music New

Relaxing music on your phone or tablet, new from 14 May 2015.
With this app, you will calm down yourself, study better, de-stress yourself, and get more sleep.

The main screen is Ambient Music. You will have the following tracks:

Three Hours of Ambient Music
RELAX TV 3 Hours of Relaxing Music, Nature Sounds, Ambient Sleep
Channel LoungeVstudio, 180 minutes

Relax Daily Project
Slow Background Music Instrumentals – soothing, calming, positive
Channel relaxdaily, 56 minutes

Guitar Music for Relaxation
Instrumental Guitar Music ? Meditation, Relaxation, Yoga, Work, Workout
Channel Jack Francis, 68 minutes

Relaxing Sounds – Zen –
Chinese Bamboo Flute with Nature Sounds

Piano Ambient Music
Bruno Sanfilippo & Mathias Grassow – Ambient music
Channel Bruno Sanfilippo, 57 minutes

Guitar — Still Waters
RELAX: Relaxing Music, Meditation Music, Sleep Music (Still Waters)
Channel Alex Bett, 57 minutes

Relaxation Piano Music
Relaxation Piano Music II – Grieg, Beethoven, Chopin & Others
Channel Kamibambiraptor, 82 minutes


Download Our Other Apps
We have other similar apps, with opera music, relaxing sounds of nature, Canzoni Italiane, Napolitan Songs, medical apps and many others.

App Policies
We do not hold copyright to the works that we have chosen for this selection of videos from YouTube.

If you want quality ambient music, this app will save you time. These are all videos from YouTube, however, personally picked and problem free. Although there is a good deal of high level Java programming going on behind the scene, you won’t notice it. To enjoy the music, just select the track you want, or, with the Play All button, play all the tracks in a row. Excellent if you study!

Download this app only if you want to relax and do something else while the ambient music is calming everything around you.

This is our choice of ambient music from YouTube. You can go to YouTube directly, that is true, but having it all in an app, within two or three taps is very convenient and beats entering naked YouTube links hands down. This app is for true ambient music lovers, not for technical buffs!

Added banner ads as well as (rare) interstitial ads.

How To Convert an Existing App From iOS to Android

Would it be difficult to convert and existing BT app from iOS to Android?

Both yes and no. If you have been using only plugins that are available for both platforms, chances are that you will not have many problems in converting. If you have been using plugins that exist only for iOS, then

oh well, yeah, of course, right… … …

you will have MANY problems in converting from iOS to Android. Some things that are so easy on iOS are not currently available on Android. You shall either have to skip on the feature or wait for someone to develop the Android plugin or commission creation of a plugin specifically for you purposes.

First Case — The Plugin You Used in iOS Exists under Android

Within the last year I have been privately writing plugins for both sides of the coins, both for iOS and for Android, for clients. In one case, I had to convert the entire app of some 300 screens from iOS to Android. What should have been an easy port turned into three weeks of hard manual labor. For iOS they used the HTML plugin to show pages on their sites and what would be more natural than to use the same HTML plugin on the Android side? It turns out that in version 2.0 of BT that plugin worked normally for both platforms, but in version 3.0 David Book changed things on his own and made the Android plugin virtually unusable. It cannot read images from HTML pages, for instance, and will force you to download the page each time instead of showing it outright.

The problem is so severe that Smug created his own version of BT HTML plugin and (fortunately) made it available to everyone for a small amount of money. It works just as it should and so I manually re-coded some 200 pages of that app and now it is OK.

Did I have to do that manually? No, I could have dived into the server code in PHP and converted the HTML plugin into Smug HTML on the fly, only that I didn’t as that was a one time job.

How To Convert When There is No Such Plugin on the Android?

You will also have problems with any other plugin that exists for iOS and has no counterpart in Android. If you have used Aussiedra’s iOS plugin to show videos on iPhone, you will have to use CMCOFFEE’s plugin for the same thing on Android. They won’t even have identical control panels, so more problems are on the way. As I said, either do it manually, or write / commission a piece of software to port parameters from one control panel to another control panel.

No Such Plugin For Android, Sorry!

Finally, there will be a case where no Android counterpart of a plugin exists. For instance, there are no Twitter and Facebook plugins on the Android side, so when one of my clients needed it, he had to pay to develop these two plugins from scratch. He could have afforded that because his client had budget sufficient to bear the brunt of such cost, and you may not be in that situation.

Or, if you are converting a larger number of apps that use mostly the same plugins, you may want to finance that cost in view of future profits that a multitude of apps is going to bring you (one day).

In an ideal world, each and every plugin in the BT market should have both Android and iOS parts ready when being published. Then you would not even have to pose your question, you would just publish two versions of the apps all day long.

Alas, that is not the case. Most developers do not learn both Java and Objective-C for the fun of it, they want to be paid for development, so usually it is an either-or situation. There are very few plugin developers that routinely publish plugins for both platforms. Chris1 and Susane come to mind, CMCOFFE and Smug could do that if they wanted to and I could do that too except that I prefer to develop for clients directly. (I am sure there are others and I apologize for not mentioning them, but that is not the point.)

The Solution — Transcode The Existing Plugin From iOS to the Similar and Existing Plugin for Android

The long term solution would be to change the code on the server and instead of this

{“itemId”:”343434″, “itemType”:”Das_video_playlist”,
“itemNickname”:”Video”, “navBarTitleText”:”Video”,
“DasVideolistTitleFontColor”: “#000000”}

insert this

“itemId”: “948A6C3DB67AA468853926F”,
“itemType”: “CM_awlPro”,
“itemNickname”: “apro”,
“navBarTitleText”: “apro”,
“youtubeKey”: “your_youtube-key”,
“ytplaylist”: “HPcpp4e3JVpXbtgyD-k-nCmwpbbMIHOh”,
“isGrid”: “false”,
“numOfColumns”: “3”,
“changeThumbSize”: “false”,
“thumbHeight”: “20”,
“thumbWidth”: “20”

But that is for David Book to decide and implement, not for us, users of the system.

How To Hire A Programmer For a New Plugin

There does not seem to be any part of these forums specially devoted to hiring a programmer, you just publish it and it appears on the top of all threads. That should be sufficient for the possibly interested programmer to contact you.

If you want to spend money for an app, I’d suggest first becoming a member here. That would give you more weight, so to speak, showing your commitment, and would also enable you to have an apps server. Without it, you are making the task of a would be programmer more difficult.

Try the Existing Plugins First

I second the idea of looking at the existing plugins and buying one or more of them before doing anything else. Once you have tried them, you will be in a better position to explain to the programmer what you want and what you do not want in your version of the plugin. And it may also happen that the existing plugins are quite sufficient in the first place, you won’t know until you tried them.

The programmer will also have that plugin and its source code, so you would be on the same page with the programmer. That is very important, as there can be no successful plugin making without a project and a goal first. You should write as detailed a project as you can, and you must state the goal, so the programmer knows when the job is finished.

Be Precise in Your Project

Sometimes a single word means a lot. Once I was hired to create a plugin that downloads an MP3 file and plays it. When I finished it, the client said: “Oh, I want it to play non stop, even when you leave the app.” So I scratched everything I wrote up to that point and had another round of coding, for the same amount of money, so to speak. (For the technically minded, the first version was written as a fragment, the second version was written as a service in Android.)

In case of an RSS plugin, the difficulties might arise if you wanted to commission a general RSS plugin, one that could read each and every RSS feed out there. For best results, you should specify the exact feeds that you want your plugin to be able to read and enter them as a part of the plugin initial specification.

How Much To Pay For the Plugin?

As for the money involved, that will differ wildly. I see people here being paid 100 dollars per plugin, then some are paid $300, some are requiring $500 and getting the deal, and if you want someone to write you an entire app with 5-10 separate and original plugins, that may well end up in lower four figures. You will never know until you start negotiating.

Unless it is someone that I have already been working before, I insist on down payment — the entire amount in advance. Again, there are no rules. In any case, be prepared to spend a lot of time working with the programmer. Usually, it is through email and Skype, but there are other channels as well. You must have your own vision of the finished plugin and may want to impress that on the programmer, however, you must also respect what the programmer has to say. Some things are not (easily) possible on Android although they may be readily available on iOS, and vice versa.

Allocate at least several weeks for the plugin to be ready for production. 3-5 days for the initial effort, 3-5 days for the coding and testing, 3-5 days for writing documentation, something like that. If there are nasty surprises along the way, it may take much longer.

What Else Can You Do To Increase the Chances of Success When Commissioning a Plugin?

You should already be proficient with various aspects of the app development cycle. I suggest you have at least one Android app published before commissioning anything, so that you and the developer are on the same page right from the start. After all, you are commissioning one plugin only and that will have to fit with the rest of the app. Programmers are often not that great at design, or do not want to get involved with it, so you will have to supply your own design for the app — the color scheme, icons, menus and options etc. The programmer has to be given an icon, they will not develop it for you just because they can.

Commissioning a Plugin Is a Part of a Business, No More, No Less

In the end, commissioning a plugin is a business decision. It must fit into your business plan for the app, and if it cannot, don’t commission anything until you can prove to yourself that the existence of the new plugin will turn tables into your favor in the app stores.

Button Ads — Run Your Own House Ads Without Google

There will be times when all you want is to show your own ads, no Google, no AdMob, no nothing. One solution is to run “button ads” — I called them so because, technically, they run as buttons. Yyou get to set up your own ad text and link for the destination web page. Here is an example of the button ad running in my app Musica Italiana Napoletana. (You may want to click here and see for yourself.)

Here is a screen shot in which a button ad appears, with the corresponding control panel:

 ronnie_1_device-2015-03-11-085403  ronnie_4_changed_name_house_ad
 ronnie_1_device-2015-03-11-085403  ronnie_3_button_ads_options

You may notice that the placement of the button ad is not standard in this example.

Make Money With House Ads — Button Ads

There are several ways to make money with house ads.

1) Promote your own apps or merchandise

Here, I am promoting two apps of mine, Opera Music and Canzoni Italiane. They both make money through AdMob ads, and the more people download the apps, the more they will be able to earn.

It is also important to note that these apps are related in theme, which is “Italian music” from various angles. It does not make sense to run house ads for dog food from Opera Music.

2) Run affiliate marketing campaigns

This is a huge topic in itself. For these three apps, you can try to link to, and similar shopping centered sites.

You may also use links from your affiliate network and try to sell something from the affiliate sites. If that is the case, make sure that their sites have corresponding mobilized pages, so that users of your app can order and pay directly from your app.

3) Run similar ads

You may observe what kind of ads Google is serving through AdMob campaigns and run similar ads, either directly from the vendor or through an affiliate network.

4) Place button ad wherever you want to

You can place buttons ads anywhere on the screen that you want, you are not limited to the standard sizes of AdMob house ads. You can have an entire menu of button ads, it is up to you.

One added benefit is that Google will not automatically see what kind of house ads are you serving. And of course, you can always run house ads through AdMob. My DS_menuIconsAdMob plugin is especially written to that purpose so if you want to monetize your apps’ screens through AdMob, let me know.