// API callback
related_results_labels_thumbs({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$blogger":"http://schemas.google.com/blogger/2008","xmlns$georss":"http://www.georss.org/georss","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$thr":"http://purl.org/syndication/thread/1.0","id":{"$t":"tag:blogger.com,1999:blog-419320228883344195"},"updated":{"$t":"2023-11-26T02:21:41.764-08:00"},"category":[{"term":"Technical"},{"term":"My Poetry"},{"term":"Programming"},{"term":"Release"},{"term":"Life"},{"term":"My Software Applications"},{"term":"Personal"},{"term":"Android Apps"},{"term":"Booklet"},{"term":"Reviews\/Reports"},{"term":"Tutorial"},{"term":"LearnedToday"},{"term":"Hacks"},{"term":"Nostalgia"},{"term":"OneSignal"}],"title":{"type":"text","$t":"Shakes Vision"},"subtitle":{"type":"html","$t":"ShakesVision by Shakeeb Ahmad| The blog \"Shakes Vision\" is all about how I see the world! This blog is to share my views, knowledge and hacks I've learned, My poetry and the software applications I've created. ©Shakeeb Ahmad"},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/posts\/default"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/-\/Android+Apps?alt=json-in-script\u0026max-results=6"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/search\/label\/Android%20Apps"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"3"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"6"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-2144413843127653629"},"published":{"$t":"2023-04-26T11:28:00.019-07:00"},"updated":{"$t":"2023-10-05T01:35:46.917-07:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Android Apps"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Technical"}],"title":{"type":"text","$t":"Building an App Builder - Strategies, Limitations and Available Tools"},"content":{"type":"html","$t":"\u003Cp\u003EAs a budding app developer, creating an app builder for mobile devices is an exciting idea which I'm giving a lot of thinking since early 2019. However, there are several strategies, and limitations that need to be considered before embarking on this journey. In this blog post, I will explore these aspects in detail.\u003C\/p\u003E\u003Cp\u003EThis would be a brainstorming session for me, where I'd just put all that I've found while researching this subject.\u003C\/p\u003E\u003Ch2 style=\"text-align: left;\"\u003ETechniques\u003C\/h2\u003E\u003Ch3 style=\"text-align: left;\"\u003EScratchware\u003C\/h3\u003E\u003Cp\u003EScratchware was an interesting project but is now deprecated. Its technique was unique, where the app was built on the device itself, without any internet connection. However, other app builders mostly build the app on the server. Therefore, it is not necessary that the build part should be on the server.\u003C\/p\u003E\u003Cp\u003EScratchware was based on\u0026nbsp;MIT App Inventor as per their website before the deprecation. Showing ads before each build, and giving options to arrange items (buttons, cards, inputs, labels etc.) in rows and columns were really awesome features. For logic, it used Scratch Programming blocks.\u003C\/p\u003E\u003Ch3 style=\"text-align: left;\"\u003EAPK Editor\u003C\/h3\u003E\u003Cp\u003EAnother app builder that is worth mentioning is \u003Ca href=\"https:\/\/github.com\/REAndroid\/APKEditor\"\u003EAPK Editor\u003C\/a\u003E, which uses ARSCLib. Another similar one is \u003Ca href=\"https:\/\/github.com\/apk-editor\/APK-Explorer-Editor\"\u003EAPK Explorer Editor\u003C\/a\u003E, which offers a full version via Fdroid.Other repos for Apk Editor might be using apktool.jar. Apktool is also being used in many Android apps, like revanced. How are they able to run.jar tools is a mystery for me yet, as executing jar requires JRE while Android runs on Dalvik Virtual Machine.\u003C\/p\u003E\u003Cp\u003EA workaround (or not?) is to use jar library via custom Cordova plugin. Plugin docs suggest it can be done easily. See this suggestion from a stackoverflow answer:\u003C\/p\u003E\u003Cp\u003EAdd lib-file element to your plugin.xml:\u003C\/p\u003E\u003Cp\u003E\u0026lt;platform name=\"android\"\u0026gt;\u003C\/p\u003E\u003Cp\u003E\u0026nbsp; \u0026lt;lib-file src=\"AztecReader.jar\" \/\u0026gt;\u003C\/p\u003E\u003Cp\u003E\u0026lt;\/platform\u0026gt;\u003C\/p\u003E\u003Cp\u003EAnyway, ApkEditor recompiles the app on the device itself, without any internet connection. This approach proves that building an app builder on a mobile device is possible without the need for a server.\u003C\/p\u003E\u003Ch3 style=\"text-align: left;\"\u003ECordova-like Environment\u003C\/h3\u003E\u003Cp\u003ECreating a Cordova-like environment on a mobile device seems difficult. Even though initializing an empty Cordova app within the user's device is possible using Node Mobile or AndroidJs, compiling the APK will be tricky as it would need gradle, java jdk, android build tools, apksigner, etc. The end-users may not have these tools installed on their devices, making it difficult for them to compile the app.\u003C\/p\u003E\u003Ch3 style=\"text-align: left;\"\u003ETermux\u003C\/h3\u003E\u003Cp\u003EJava runtime, etc., would be possible using Termux in android, but that would require end-users to have Termux installed, which may be a challenge.\u003C\/p\u003E\u003Ch3 style=\"text-align: left;\"\u003EUsing a Sample App as a Base\u003C\/h3\u003E\u003Cp\u003EAnother approach could be to use a sample app as a base and replace its content at runtime using a user-defined config file. This approach is similar to the Cordova-like environment but is more simplified and straightforward.\u003C\/p\u003E\u003Ch3 style=\"text-align: left;\"\u003EMeta-data\u003C\/h3\u003E\u003Cp\u003EOne of the most popular strategies for creating an app builder is to use meta-data. In this strategy, the \"app\" you define is meta-data in a higher-level definition that is interpreted in a host wrapper app. This approach makes it easier to create apps as the app builder is more of a code generator.\u003C\/p\u003E\u003Ch3 style=\"text-align: left;\"\u003EDesktop - HTML to APK\u003C\/h3\u003E\u003Cp style=\"text-align: left;\"\u003EA tool I found, and tested but never used in production or even to build anything remotely of any use for myself is \u003Ca href=\"https:\/\/website2apk.en.softonic.com\/?ex=DINS-635.1\" target=\"_blank\"\u003EWebsite to APK\u003C\/a\u003E\u003Ci\u003E \u003C\/i\u003Ewhich is a desktop-based tool. The interface looks like it's built using the C# Windows Form Application. The options are really great, and it's user-friendly.\u0026nbsp;\u003C\/p\u003E\u003Cp style=\"text-align: left;\"\u003ESoftonic's dev bio hyperlink suggests Pravesh Agrawal as the developer. \u003Ca href=\"https:\/\/praveshagrawal.com\/\" target=\"_blank\"\u003EWeb\u003C\/a\u003E, \u003Ca href=\"https:\/\/github.com\/praveshagrawal\" target=\"_blank\"\u003EGithub\u003C\/a\u003E, \u003Ca href=\"https:\/\/twitter.com\/praveshag\" target=\"_blank\"\u003ETwitter\u003C\/a\u003E.\u003C\/p\u003E\u003Cp style=\"text-align: left;\"\u003EIt seems to be using all the standard tools in the background (probably running a bash script for build instructions). Options to select a URL or a local folder are awesome, along with an icon, splash screen, and setting up Admob ids in presumably pre-configured ad spaces.\u0026nbsp;\u003C\/p\u003E\u003Cp style=\"text-align: left;\"\u003EThis perfectly depicts the \"meta-data\" type or a \"base app\" already set, which is modified based on the user's input.\u0026nbsp;\u003C\/p\u003E\u003Ch2 style=\"text-align: left;\"\u003EAvailable Tools\u003C\/h2\u003E\u003Cp\u003EThere are several tools available for creating an app builder on mobile devices. Some of these tools include:\u0026nbsp;\u003C\/p\u003E\u003Cp\u003E\u003Cb\u003EAppSheet:\u003C\/b\u003E AppSheet uses a meta-data strategy to create an app builder. It interprets the higher-level definition in a host wrapper app, making it easier to create apps.\u003C\/p\u003E\u003Cblockquote\u003E\u003Cp\u003E\u003Ci\u003EA sample response to the question \"Building an App Builder - how do they do it?\" on \u003Ca href=\"https:\/\/stackoverflow.com\/questions\/39032767\/building-an-app-builder-how-do-they-do-it\" target=\"_blank\"\u003Estackoverflow\u003C\/a\u003E as a reference:\u003C\/i\u003E\u003C\/p\u003E\u003Cp\u003EI work at AppSheet. There are two basic approaches an app builder can follow: (a) act as a code generator, or (b) implement an intepreter. In the former case, it spits out code that gets compiled into an executable package that can be installed and run on a device. In the latter case, the \"app\" you define is meta-data in a higher-level definition that is interpreted in a host wrapper app. Each has its strengths and weaknesses. AppSheet uses the latter approach. \u003Ci\u003E— Praveen Seshadri\u003C\/i\u003E\u003C\/p\u003E\u003C\/blockquote\u003E\u003Cp\u003E\u003Cb\u003EThunkable:\u003C\/b\u003E\u0026nbsp;Thunkable uses a simple drag-drop interface and loads of pre-defined templates and customizations. As far as I remember, It also uses Sratch for programming logic similar to Scratchware.\u003C\/p\u003E\u003Cp\u003E\u003Cb\u003EAndromo:\u003C\/b\u003E Andromo is an online app builder that lets you create Android apps without any coding. It has a user-friendly interface that makes it easy to build apps.\u003C\/p\u003E\u003Cp\u003E\u003Cb\u003EBuildFire:\u003C\/b\u003E BuildFire is another online app builder that offers a drag-and-drop interface for creating Android apps.\u003C\/p\u003E\u003Ch2 style=\"text-align: left;\"\u003EConclusion\u003C\/h2\u003E\u003Cp\u003EI'm not really sure which strategy would work the best, but a couple of them looks promising to me. \u003Ci\u003EFor Android on Android\u003C\/i\u003E, editing the APK and recompiling might be the easiest one. Although I've to dig deeper to understand how APK editor and the likes do it. It's not just unzip and re-zip of the package, which often results in app corruption.\u0026nbsp;\u003C\/p\u003E\u003Cp\u003EA desktop app might be simple, but dependencies should be bundled within the executable in that case, otherwise, it'd again feel like something built for advanced users.\u003C\/p\u003E\u003Cp\u003E\u003Ci\u003EReferences\u003C\/i\u003E\u003C\/p\u003E\u003Cp\u003E\u003Ca href=\"https:\/\/github.com\/Sketchware-Pro\/Sketchware-Pro\"\u003EScratchware Pro\u003C\/a\u003E continued on GitHub\u003C\/p\u003E\u003Cp\u003E\u003Ca href=\"https:\/\/stackoverflow.com\/questions\/50988518\/how-do-i-build-a-cordova-8-x-cordova-jar-to-include-in-existing-android-app\"\u003EHow do I build a Cordova 8.x cordova.jar to include in existing Android app?\u003C\/a\u003E\u003Cbr\u003E\u003C\/p\u003E\u003Cp\u003E\u003Ca href=\"https:\/\/www.linkedin.com\/pulse\/integrating-hybrid-app-cordova-native-java-android-part-bhandari\"\u003EIntegrating Hybrid App (Cordova) with Native App (Java android app) — Part 1\u003C\/a\u003E\u0026nbsp;by \u003Ca href=\"https:\/\/github.com\/pankajbhandari08?tab=repositories\"\u003Epankajbhandari08\u003C\/a\u003E\u003Cbr\u003E\u003C\/p\u003E\u003Cp\u003E\u003Ca href=\"https:\/\/www.xda-developers.com\/decompile-and-modify-apks-on-the-go-with-apktool-for-android\/\"\u003EDecompile and Modify APKs on the go with APKTool for Android [XDA Spotlight]\u003C\/a\u003E introduces apktool by \u003Ca href=\"https:\/\/www.androidfilehost.com\/?w=profile\u0026amp;uid=24562946973631820\"\u003EAndro Black\u003C\/a\u003E\u003Cbr\u003E\u003C\/p\u003E\u003Cp\u003E\u003Ca href=\"https:\/\/stackoverflow.com\/questions\/16608135\/android-studio-add-jar-as-library\"\u003EAndroid Studio: Add jar as library?\u003C\/a\u003E Directly or using mavenCentral as per one of the comments\u003C\/p\u003E\u003Cp\u003E\u003Ca href=\"https:\/\/stackoverflow.com\/questions\/26038026\/including-jar-file-into-cordova-plugin\"\u003EIncluding .jar file into cordova plugin\u003C\/a\u003E with suggestion to add lib-file in plugin\u003C\/p\u003E"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/2144413843127653629\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2023\/04\/building-app-builder-strategies.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/2144413843127653629"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/2144413843127653629"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2023\/04\/building-app-builder-strategies.html","title":"Building an App Builder - Strategies, Limitations and Available Tools"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-5551713702556104513"},"published":{"$t":"2021-03-12T04:44:00.007-08:00"},"updated":{"$t":"2022-10-10T22:46:02.261-07:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Android Apps"},{"scheme":"http://www.blogger.com/atom/ns#","term":"My Software Applications"},{"scheme":"http://www.blogger.com/atom/ns#","term":"OneSignal"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Release"}],"title":{"type":"text","$t":"App Release: OneSignal Push Manager - Secure \u0026 Free (Android+Web)"},"content":{"type":"html","$t":"\u003Ctable align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"tr-caption-container\" style=\"margin-left: auto; margin-right: auto;\"\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd style=\"text-align: center;\"\u003E\u003Ca href=\"https:\/\/1.bp.blogspot.com\/-PRFRSOQ1ElY\/YEteemAOj3I\/AAAAAAAAFUQ\/ppTrzEgm-wwDuvPcJisp7dSXakL-CHatwCLcBGAsYHQ\/s1024\/onesignalBanner1024x500.png\" style=\"display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;\"\u003E\u003Cimg alt=\"OneSignal Push Manager - Secure \u0026amp; Free (Android)\" border=\"0\" data-original-height=\"500\" data-original-width=\"1024\" height=\"195\" src=\"https:\/\/1.bp.blogspot.com\/-PRFRSOQ1ElY\/YEteemAOj3I\/AAAAAAAAFUQ\/ppTrzEgm-wwDuvPcJisp7dSXakL-CHatwCLcBGAsYHQ\/w400-h195\/onesignalBanner1024x500.png\" title=\"OneSignal Push Manager - Secure \u0026amp; Free (Android)\" width=\"400\"\u003E\u003C\/a\u003E\u003C\/td\u003E\u003C\/tr\u003E\u003Ctr\u003E\u003Ctd class=\"tr-caption\" style=\"text-align: center;\"\u003EOneSignal Push Manager - Secure \u0026amp; Free\u003C\/td\u003E\u003C\/tr\u003E\u003C\/tbody\u003E\u003C\/table\u003E\n\u003Cblockquote\u003EThis app helps you manage your app credentials and provides intuitive UI for sending the notifications to your users.\u003C\/blockquote\u003E\u003Cp\u003EAndroid:\u0026nbsp;\u003Ca href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.onesignalpush\"\u003Ehttps:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.onesignalpush\u003C\/a\u003E\u003C\/p\u003E\n\u003Ctable align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"tr-caption-container\" style=\"margin-left: auto; margin-right: auto;\"\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd style=\"text-align: center;\"\u003E\u003Ca href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.onesignalpush\" style=\"display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;\"\u003E\u003Cimg alt=\"\" border=\"0\" data-original-height=\"500\" data-original-width=\"1024\" height=\"148\" src=\"https:\/\/play-lh.googleusercontent.com\/aZ-vdXBToteXFJ4MqwaerP7felTV0qn3iZS3YE-EcXtPUvUNdlxbPCS5pCOTeXKoWJQ=w148-h148\" width=\"148\"\u003E\u003C\/a\u003E\u003C\/td\u003E\u003C\/tr\u003E\u003Ctr\u003E\u003Ctd class=\"tr-caption\" style=\"text-align: center;\"\u003EAndroid app to manage \u0026amp; send push notifications via OneSignal\u003C\/td\u003E\u003C\/tr\u003E\u003C\/tbody\u003E\u003C\/table\u003E\n  \u003Ch3\u003EFeatures\u003C\/h3\u003E\n  \u003Cul\u003E\n    \u003Cli\u003EManage all your apps\u003C\/li\u003E\n    \u003Cli\u003EStores all your credentials \u003Cem\u003Ein your phone\u003C\/em\u003E\u003C\/li\u003E\n    \u003Cli\u003EOffline storage, \u003Ca href=\"https:\/\/github.com\/ShakesVision\/OneSignal-Push-Src\"\u003E open-source\u003C\/a\u003E and hence trustworthy\u003C\/li\u003E\n    \u003Cli\u003ECRUD for app info with lovely UI\u003C\/li\u003E\n    \u003Cli\u003ESimple notepad to save other necessary stuff\u003C\/li\u003E\n    \u003Cli\u003ESend notifications to any of your apps, in any segment\u003C\/li\u003E\n    \u003Cli\u003EFrom simple heading + message notifs to fancy ones, with icon, banner and \u003Cem\u003Eextra data\u003C\/em\u003E to pass-in the\n      app (useful for deeplinks)\u003C\/li\u003E\n  \u003C\/ul\u003E\n\n  \u003Ch3\u003EUser Guide\u003C\/h3\u003E\n  \u003Col\u003E\n    \u003Cli\u003EGet your \"App ID\" and \"REST API Key\" from OneSignal Dashboard.\u003C\/li\u003E\n    \u003Cli\u003EIt is recommended by OneSignal NOT to save API key anywhere, therefore our app doesn't save it by default. It's optional.\u003C\/li\u003E\n    \u003Cli\u003EIn the \"APPS\" section of our app (Push Manager), make a list of app names and IDs.\u003C\/li\u003E\n    \u003Cli\u003EIn the \"SEND NEW\" section, fill the details and send in a segment of your choice.\u003C\/li\u003E\n    \u003Cli\u003EButton 1 can be used to send in a segment named 'Test', which you can configure from OneSignal Dashboard for your test devices.\u003C\/li\u003E\n    \u003Cli\u003EButton 2 can be used to send in a segment named 'All'.\u003C\/li\u003E\n    \u003Cli\u003EButton 3 can be used to send in any custom segment.\u003C\/li\u003E\n    \u003Cli\u003ENotepad can be used to jot down \u0026amp; save other necessary stuff.\u003C\/li\u003E\n    \u003Cli\u003EProfit?\u003C\/li\u003E    \n  \u003C\/ol\u003E  \n\n  \u003Cp\u003EQuestions, suggessions and contributions are welcome.\u003C\/p\u003E\u003Cp\u003EThe app is also available as a webapp for testing purposes here:\u0026nbsp; https:\/\/onesignal.netlify.app\/\u003C\/p\u003E\n\n  \u003Cp\u003E\u003Cb\u003EShakeeb Ahmad\u003C\/b\u003E\u003C\/p\u003E\n    \u003Cp\u003E\u003Ca href=\"https:\/\/www.buymeacoffee.com\/shakesvision\" rel=\"nofollow\"\u003E \u003Cimg align=\"left\" alt=\"shakesvision\" data-canonical-src=\"https:\/\/cdn.buymeacoffee.com\/buttons\/v2\/default-yellow.png\" height=\"50\" src=\"https:\/\/camo.githubusercontent.com\/28aae05a0fba45679e8e27d90609601e249b64a5fe30dfef05495de4f4e318d4\/68747470733a2f2f63646e2e6275796d6561636f666665652e636f6d2f627574746f6e732f76322f64656661756c742d79656c6c6f772e706e67\" style=\"max-width: 100%;\" width=\"210\"\u003E\u003C\/a\u003E\u003C\/p\u003E"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/5551713702556104513\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2021\/03\/onesignal-push-manager.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/5551713702556104513"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/5551713702556104513"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2021\/03\/onesignal-push-manager.html","title":"App Release: OneSignal Push Manager - Secure \u0026 Free (Android+Web)"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/1.bp.blogspot.com\/-PRFRSOQ1ElY\/YEteemAOj3I\/AAAAAAAAFUQ\/ppTrzEgm-wwDuvPcJisp7dSXakL-CHatwCLcBGAsYHQ\/s72-w400-h195-c\/onesignalBanner1024x500.png","height":"72","width":"72"},"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-419320228883344195.post-7073565971181060995"},"published":{"$t":"2020-02-29T01:40:00.000-08:00"},"updated":{"$t":"2021-03-12T04:46:51.096-08:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"Android Apps"},{"scheme":"http://www.blogger.com/atom/ns#","term":"My Software Applications"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Programming"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Release"},{"scheme":"http://www.blogger.com/atom/ns#","term":"Technical"}],"title":{"type":"text","$t":"Qaafiyah Expert (Android) - Release"},"content":{"type":"html","$t":"\u003Cdiv dir=\"ltr\" style=\"text-align: left;\" trbidi=\"on\"\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/1.bp.blogspot.com\/-7tinrZ9Esy8\/Xlosa2_iLbI\/AAAAAAAAD4A\/tn_g0vE_4BsmxWK0kr-55cQUtbCc9PFCACKgBGAsYHg\/s1600\/Qaafiyah%2BExpert%2Bbanner%2B1024x500.png\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" data-original-height=\"500\" data-original-width=\"1024\" height=\"312\" src=\"https:\/\/1.bp.blogspot.com\/-7tinrZ9Esy8\/Xlosa2_iLbI\/AAAAAAAAD4A\/tn_g0vE_4BsmxWK0kr-55cQUtbCc9PFCACKgBGAsYHg\/s640\/Qaafiyah%2BExpert%2Bbanner%2B1024x500.png\" width=\"640\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cbr \/\u003E\nLinks:\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cul style=\"text-align: left;\"\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.qaafiyah\" target=\"_blank\"\u003EDownload the app From Playstore\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/ur.shakeeb.in\/2020\/02\/qaafiyah-expert-android.html\" target=\"_blank\"\u003ERead Urdu version here\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/www.facebook.com\/sarbakafgroup\/\" target=\"_blank\"\u003EFacebook page (to get updates regarding my new work)\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"https:\/\/drive.google.com\/file\/d\/1axjHoY5MWn8B5KxSowRmTbeQzZI5OZUu\/view?usp=sharing\" target=\"_blank\"\u003EHelp PDF file (How to use this tool)\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cbr \/\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.sarbakaf.qaafiyah\" target=\"_blank\"\u003E\u003Cimg alt=\"Download Qafia expert\" border=\"0\" data-original-height=\"256\" data-original-width=\"256\" height=\"200\" src=\"https:\/\/freeiconshop.com\/wp-content\/uploads\/edd\/google-play-badge.png\" title=\"Download Qafia expert\" width=\"200\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\nQaafiyah Expert is a simple tool which contains\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Col style=\"text-align: left;\"\u003E\n\u003Cli\u003E\u0026nbsp;A rhyme generator, with support of diacritics, filter for Urdu poetic meters and 3 scripts for search. Works offline.\u003C\/li\u003E\n\u003Cli\u003E\u0026nbsp;A lightweight diary with offline \"save\" support.\u003C\/li\u003E\n\u003Cli\u003E\u0026nbsp;An online portal for awesome literary posts, updated periodically.\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ch2 style=\"text-align: left;\"\u003E\nFor those who were waiting for this\u003C\/h2\u003E\n\u003Ch3 style=\"text-align: left;\"\u003E\nWhy did it take so long?\u003C\/h3\u003E\n\u003Cdiv\u003E\nLike always, I'd list many reasons (excuses?)\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Col style=\"text-align: left;\"\u003E\n\u003Cli\u003EGod's wish.\u003C\/li\u003E\n\u003Cli\u003ELearning android development takes some time.\u003C\/li\u003E\n\u003Cli\u003EThe basic structure had been completed in September 2019, which I had had on my mobile phone. I used to suggest qawaafi to people asking for them using the tool. But I wasn't satisfied. At the time of \u003Ca href=\"https:\/\/www.shakeeb.in\/2017\/01\/qaafiyah-expert-by-shakeeb-ahmad.html\" target=\"_blank\"\u003EWindows software version\u003C\/a\u003E (in 2016) I was new in the programming world. Not a pro now either, but whatever I've learned in these years, I thought to improve at least few things in it and add few features of my own interest. So, the app has seen many phases before being released to the public. The basic version had the same options I'd put in Windows app.\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\n\u003Ca href=\"https:\/\/1.bp.blogspot.com\/-m9FuVnuK3OY\/XlosuJ_sJnI\/AAAAAAAAD4E\/mIKLrswg6xkRkURncvn6mWEjStkuFQwkACKgBGAsYHg\/s1600\/photo6255993709623618090.jpg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" data-original-height=\"1028\" data-original-width=\"708\" height=\"320\" src=\"https:\/\/1.bp.blogspot.com\/-m9FuVnuK3OY\/XlosuJ_sJnI\/AAAAAAAAD4E\/mIKLrswg6xkRkURncvn6mWEjStkuFQwkACKgBGAsYHg\/s320\/photo6255993709623618090.jpg\" width=\"220\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\nNow, those who used to constantly poke me via email or social media to provide the basic version at least, may say unspeakable things to me; but as I've said many times:\u003C\/div\u003E\n\u003Cblockquote class=\"tr_bq\"\u003E\nI have a constant urge to present the things in the best way possible.\u003C\/blockquote\u003E\nSo I delayed it. Although I've recently read in a \u003Ci\u003Egyaani's\u003C\/i\u003E article that this bug of perfectionism should be killed ASAP.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nOne more reason for releasing it late is that nobody likes to update the app too many times. So, changing few things and releasing an update would do no good. And Google PlayStore, MashaAllah, bombards you with questions in every release, making it further difficult.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ch2 style=\"text-align: left;\"\u003E\nRequests\u003C\/h2\u003E\nThe app is still in the dev mode, so if you find any bug or want something to be included in the next version, please leave a review. If the response is good, I'll try to roll out next release soon.\u003Cbr \/\u003E\n\u003Ch3 style=\"text-align: left;\"\u003E\nFew features in upcoming versions\u003C\/h3\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cul style=\"text-align: left;\"\u003E\n\u003Cli\u003EApp interface language switch, for those who don't know Urdu script (Complete Internationalization)\u003C\/li\u003E\n\u003Cli\u003EMeanings and thesaurus on word-click\u003C\/li\u003E\n\u003Cli\u003ETaqti (Poetic Meter calculation)\u003C\/li\u003E\n\u003Cli\u003EPoetry workshop\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cdiv\u003E\nI've two requests for you. First, to report bugs if you find any and if you want any other feature to be included in this app (other than the 4 mentioned above) then comment on the Play Store's rating page.\u003C\/div\u003E\n\u003C\/div\u003E\n\u003Cdiv\u003E\nSecond, If you have an idea for a new app, go to \"online\" section of this app and submit your idea on \"Ek app aisi bhi.\"\u003C\/div\u003E\n\u003Cdiv\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv\u003E\nI've few app ideas of my own interest, have to finish them too. Remember me in your supplications.\u0026nbsp;\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\n\u003Cbr \/\u003E\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\nShakeeb Ahmad\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\nFebruary 16, 2020\u003C\/div\u003E\n\u003Cdiv style=\"text-align: right;\"\u003E\nTelegram: ShakesVision\u003C\/div\u003E\n\u003C\/div\u003E\n"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.shakeeb.in\/feeds\/7073565971181060995\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/02\/qaafiyah-expert-android.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/7073565971181060995"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/419320228883344195\/posts\/default\/7073565971181060995"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.shakeeb.in\/2020\/02\/qaafiyah-expert-android.html","title":"Qaafiyah Expert (Android) - Release"}],"author":[{"name":{"$t":"Shakeeb Ahmad"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/17653459503215179964"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"32","height":"32","src":"\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj0xfeyUVi21b-PCYCtvmlsj8yBnPBPqjmkTXju9QARy7EeajeXP7FiMLrWYy9f1gpsHkMTwucDqCjN9QPKqG6-zGZG-Nv-St1BdjmMgXWaf2hlrscbT6D8FPdDEwTFJzU\/s220\/ShakeebAvatarLowQuality.jpg"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/1.bp.blogspot.com\/-7tinrZ9Esy8\/Xlosa2_iLbI\/AAAAAAAAD4A\/tn_g0vE_4BsmxWK0kr-55cQUtbCc9PFCACKgBGAsYHg\/s72-c\/Qaafiyah%2BExpert%2Bbanner%2B1024x500.png","height":"72","width":"72"},"thr$total":{"$t":"0"}}]}});