jay's old blog

this blog will be deleted soon - please visit my new blog - https://thesanguinetechtrainer.com

Supported Platforms – End Users



[Ongoing series of blog posts to inform potential developers, users and (hopefully investors) about this new app ecosystem I am architecting, designing, developing and deploying. More details at this page]

An ecosystem is worthless if people cannot use it on the platform of their choice. A few years ago (like say 2 years ago) deciding on the supporting end user platforms was tricky. The major platforms were windows desktop, windows touch enabled stuff – windows 8 and windows 10, then there was windows phone, the web browser on desktop, the web browser on mobiles, the web browser on tablets, and then of course android on phone, android on tablet and lastly, ios on phone and ios on tablets.

Phew! That is a lot of platforms. That would drive any developer crazy! It sure did drive me crazy.

Today, and during the year in which this blog post was written, I would say the tech revolution has reached its satisfactory conclusion. That’s good because, now things are simpler. As I continue my work on project TD, I must confess that life is a lot simpler now. With that knowledge, I know now that to reach to the widest audience, I only have to reach out to the following three platforms – Web Browser on desktop, android on phone, and iOS on phone.

Web Browser on desktop

At the end of the day, any machine with a keyboard plugged into it can run a web browser. I recently wrote about the appeal of web development. Web browsers have reached that maturity where they can support full-fledged applications. They also work well with touch enabled devices. A few years ago, I would have no choice but to build a traditional windows desktop application, the touch enabled and so called ‘modern’ or ‘metro’ apps for windows 8 / windows 10, and do the same for Mac and Linux.

Now, I don’t need to target any of these desktop platforms with native apps. The browser based app will take care of all this. Imagine the amount of effort I am able to save here. More importantly, we are now entering an era where a lot of people no longer think running applications in a browser is odd or weird. For someone who grew up in the 90s and early 00s, not using native desktop applications is odd. However, for those who grew up in the late 00s and onwards, using web app comes naturally. That means, having zero native apps will not hurt my ecosystem if it should go wide.

Android and iOS on phone

Intentionally, I have decided to leave out tablets entirely out of the picture. Perhaps, five years ago, we thoughts that tablets might go mainstream and even replace PCs and smartphones. Unfortunately, that did not happen, and I pretty much concluded my own observations in this post. Just this morning, I found out that the iPad version of the Instagram app is but a blown up iPhone app. This does not imply that a large company such as Instagram is lazy. On the contrary, it is a reflection of reality. Tablets are not a major platform and any time/money spent on it is not going to give returns.

Besides, phones have been getting bigger and have become ubiquitous. Thanks to improving infrastructure, it is not that expensive to download apps anymore. Phones also have better SD card support now, and most of them come with decent onboard storage as well. All in all, the mobile platforms have achieved a certain maturity which I should exploit.

Previously, I was of the opinion that I don’t wish to touch iOS. I assumed that developing for the apple platform can be pretty expensive. I also assumed that there are very few iPhones running around. However, I re-did some research, and see if perhaps the passage of time has changed the situation. I found out that at least some things have changed. A cheap Mac and a cheap iPhone can be obtained at prices slightly more than android development gear. The developer license continues to be expensive but that is a business cost. Further, I noticed that there are a small chunk of folks who are indeed using the older generation iPhones such as the 5c and 6, so perhaps there is indeed a user base to target.

All things considered, I decided that when it comes to mobile, I should target both android and iOS.

While I am writing about this, I must also mention the state of mobile optimization of the web apps, which are anyway being developed. I would say no. I am not going to go out of my way to optimize the above mentioned web apps to work on the small screen. Folks who want to use the site on their mobile browser should simply install the available mobile apps. Either that or live with poorly optimized web app. That, I am afraid, would be there choice.

Follow me on twitter, facebook and instagram for more updates. Thanks!

App Ecosystem – Day 1 – Naming the project and beginning things



Yesterday, I wrote about finally beginning to work on not just an app, but an entire app ecosystem. As with anything, everything starts with giving it a name. A name is everything isn’t it. In my earlier post, I spoke about the relevance of meaningful names making code. If I am the kind of guy who spends so much time simply naming a basic variable in a simple piece of code, I should give a proper name to this app ecosystem as well.

While naming, there are two types of name. There is the placeholder name, and there is the actual name that you use for marketing. As an independent businessman, I must appreciate and more importantly respect the value that marketing brings into day to day business activities. So, for now, I don’t have an actual marketing name for my ecosystem. However, a placeholder name, I will go with would be ‘Project TD’.

What TD stands for, should remain in my own head for now. I am weird that way ;)

Moving on, any app ecosystem, especially a technology system, should and must follow the Software Development Life Cycle. Sure, a guy like who hate using established systems such as SDLC. It’s boring, and it sounds dull because some folks designed such things, and they were probably not cool. I almost always take the road less taken, the uncharted island attracts me more than an established. However, I admire and respect what others have done, cool or not cool. Respect must be given, where it is due, no matter how much I might not like on a personal level.

So yes, TD will also follow the SDLC cycle, but I will make changes as necessary. A development model that does not adapt to changing scenarios is a dead one. I don’t want my development model to die, obviously. Here is the standard life cycle that I will be using.

  • Prep work – includes risk analysis
  • Design – loads and loads of drawings and diagrams. Also includes presentation, mostly to non-tech people.
  • Development – Loads and loads of typing. Referencing external sources, books, mentors. 4 monitors, with simultaneous coding on at least 2 computers.
  • Testing – Engaging with lots of different types of users, everybody from tech savvy users to folks who are turning on computer for the first time. A true architect and developer never forgets his users because that is where the money comes from.
  • Deployment – Including a lot of security stuff, discussing encryption systems and networking realities.
  • Repeat and Rinse.

While all this cycle stuff is happening (or will happen), perhaps the most important question is why do all this? More importantly, why do this at all?

The answer, it boils down, to the simple life concept of ‘show, don’t tell’. Even when I was a kid, I preferred to show stuff, rather than explaining stuff. Interacting with the five senses is perhaps the best way to get some work done. This blog (and all the other things I have done and shown for the past five years) has helped some score some serious amount of deals, and that means colour green. While I am already designing end to end solutions for clients, I am yet to train people on end to end solutions.

Posts such as this one, and many more that will follow, will help me keep track of progress. As always, I also hope that some of the things that I write on blog will help others who need information. Hopefully, at least one of these goals will be achieved.

Follow me on twitter, facebook and instagram for more updates. Thanks!

Evolving from App to App Ecosystem



Few years ago, when I was building my android portfolio, I worked on some essential apps which can be found here, here and here. Obviously, the servers related to them are currently switched off, and the app themselves removed or not function in the google play store. Of course, those apps helped me get the assignments I was looking, so the investment made in those (now) defunct apps have been recovered many times over.

However, some benefits much deeper than just return on investment, both time and money. As I was building those apps (2 to 3 years ago), I felt that something was missing. I was developing apps, but the bigger question was this. Where do these apps live? If apps were people, then where do people live. Earth is where we live, and we thrive because of the ecosystem.

Of course, this is something which is known to most of us, but I realize that now, back then, I always thought of myself as an app developer. Obviously, even back then, I never thought of myself as a lowly programmer, so I was always thinking of ahead of many of peers. Now, as the years have gone by (hopefully, a little more mature) and over the last few months, I have been thinking about updating my portfolio. Replacing them with newer, and hopeful better (but not necessarily useful apps, because, that is not really the industry I am in) apps.

However, I realized over time that (and this thinking process is what has allowed to work as a solution consultant instead of a simply being a trainer or a developer) that when I rebuild these apps, the focus should be on building an ecosystem rather the apps themselves. Apps don’t work alone. They interact with the user. They interact with other apps installed on the phone. They interact with the operating system that acts as the platform on which they run. Not to forget that apps also interact with the hardware underneath the operating system, and there is the issue of performance and optimization. Then, there is the part about data. There is data storage which happens (or should happen) online as well locally. When it comes to online data, it could be cloud services that enable the app to do its own job, while also integrating with cloud services that provide additional facilities.

As I took time off from android to work on dot net, these thoughts have been consistent. Whether it is a web app or a mobile app or a desktop app, all apps (big and small, huge and tiny) are part of an ecosystem. Interacting with elements that have come before them and with items that come after them. The keyboard I am typing on was probably designed before computers even properly invented. Yet, here we are, living in a magical world where I can talk to a person literally on the other side of the universe.

It’s a wonderful world we live in, and it is finally time for me to absorb this understanding into any and all things I develop. No, I am not a app developer. In fact, I haven’t been an app only developer for a few years now. I am now an ecosystem developer and that is what I should do.

Of course, all talk and no walk is not something anybody will appreciate. Going back to what I said (and have done years ago) about those three projects, the app related to restaurant tipping is the one that is closest to my heart. Mostly because I eat out a lot, and love leaving generous tips. That is where I will start. If all goes well, in a few months from now, I would have built a proper tipping eco system. If not, I would have learnt some really cool stuff and would be even more prepared to restart the eco system building process.

Either way, it will be awesome and win-win situation for me.

Follow me on twitter, facebook and instagram for more updates. Thanks!