Posts

Balancing Productivity and Happiness: Tips and Tricks for Software Engineers

As a software engineer and mobile app developer, your success is dependent on your ability to manage your time and be productive. With the endless tasks and deadlines, it can be challenging to achieve work-life balance while still progressing in your career. However, by implementing a few tips and tricks, you can become a more productive developer while still maintaining a healthy work-life balance. One technique for time and effort management is the Pomodoro Technique. This method involves breaking down work into 25-minute intervals, followed by a five-minute break. After completing four cycles of work, take a more extended 30-minute break. By breaking down your work into manageable intervals, you can remain focused and avoid burnout. To achieve work-life balance, it's essential to set boundaries and stick to them. Make time for hobbies, exercise, and spending time with friends and family. Don't let work consume your life; instead, make a conscious effort to balance your wor

Test driven development and Android

Test-driven development (TDD) is a software development technique that involves writing tests before writing code. The idea is to write automated tests that verify the behavior of your code and use these tests to guide the development process. TDD is popular among developers because it helps ensure that their code is reliable, maintainable, and bug-free. In Android development, testing is critical for ensuring that your app works as intended and doesn't crash or exhibit unexpected behavior. There are several tools and frameworks available for testing Android apps, including: JUnit: JUnit is a popular testing framework for Java that can be used for Android development. It provides a set of annotations and assertions that make it easy to write unit tests for your code. Espresso: Espresso is a testing framework for Android that allows you to write automated UI tests. With Espresso, you can simulate user interactions and verify that your app behaves as expected.

Why & how to get mobile development?

If you're looking to get into Android development, there are a variety of courses available online that can help you get started. Many of these courses are designed for beginners and cover the basics of Java or Kotlin programming, as well as the fundamentals of Android app development. One popular course for beginners is the Android Basics Nanodegree program offered by Google. This course covers everything from basic programming concepts to more advanced topics like app architecture and debugging. It's a great option for those who are just starting out and want a comprehensive introduction to Android development. Another popular option is the Kotlin for Android Developers course offered by Udacity. This course focuses specifically on teaching Kotlin, which is quickly becoming the preferred language for Android development. It's a great choice for those who want to get up to speed on Kotlin quickly. Once you've completed a course or two and have a basic understandin

Why Start Android Development?

In today’s world, the importance of technology cannot be overstated. Almost every aspect of our lives has been impacted by technology, and software engineering is at the forefront of this revolution. Programming, in particular, has become an essential skill that can open up countless opportunities for those who possess it. In this article, we will explore the benefits and applications of software engineering, as well as the opportunities that mobile development for Android can offer. First and foremost, programming is an incredibly versatile skill that can be applied in a wide range of industries. From healthcare to finance to entertainment, there is no shortage of fields that rely on software engineering to function. Moreover, software engineering can also be applied in a variety of contexts, from creating video games to building enterprise software systems. This versatility means that programmers have an almost limitless number of opportunities to apply their skills. One area of so

Swipify taking the internet by a storm!

Image
 Swipify has been getting rave reviews from several acclaimed tech reviewers. I started developing the app without having the physical wear os device, it made development extremely challenging as the critical part of development is deployment of the wear os app to an actual phone which was not achievable given a highly unstable wear os emulator.  However this community supported the development by A/B testing pre-released app and provide feedback with detailed logs on Google+ to facilitate the development. I'm greatful to alot of supporters from around the world. I'm humbled by Swipify being featured on Google Play Store and excited to see the app being among the top 15 Wear OS recommended apps by Android Authority. The app has received great feedback from Android Police  and several other articles around the web!

Android Wear 2.0 inspired by Swipify!

Image
Back in July 2014 when I was doing my research work for the scholarly publication  of my Computer Systems Engineering graduation, I got intrigued by Android Wear watches. I remember watching the  Google IO in which they showed off the upcoming watches and the cool new ways we could interact with our phones. At the time of Google IO I didn't pay much attention to Android wear and focused completely on my research. However at the launch of Android wear, I saw LG G watch and Moto 360, the later was planned to be released a few months later. I was fascinated by the cool design of Moto 360 and got interested in wear development. I looked at the workings of Wear OS & to my surprise, Google didn't include a handy application launcher considering Android Wear was all about enhancing user experience and keeping us away from our phones when necessary. The only way one could launch an app was via voice, otherwise you had to dig deep into the system to get to list of installed apps.

Espresso & Progress bar Dialog: The epic conflict

If you are trying to test your app that has a ProgressDialog in it, STOP RIGHT THERE! You are gonna be in a world of pain, when your tests keep failing for no apparent reason after failing to find the progressDialog that is vividly visible on the screen. The problem isn't in your code. It's the shortcoming of the Espresso Testing Framework. The framework can't really handle the animations of the progress dialog. I am still digging around the exact reason, however from the little bit of research I have figured out that the drawable animation of the circle gives the impression of non idle state to the Espresso framework. So what does it mean? It means Espresso keeps waiting for the app to enter the idle state and as long as the progress dialog is visible on the screen, the app stays in the busy state. By the time animation ends, the progress dialog is gone. When the app enters the idle state and espresso comes out of the waiting loop to start running tests, it fails toex