I have decided to create the Derek Podcast, this podcast is another way for me to produce content about my software developer career. I chose to start a podcast because its something I’ve always wanted to try and I appreciate the medium. My written posts will come back next week but in the meantime, here is episode 1. Please let me know what you think by leaving a comment or via Twitter.
Recently, I was working on an app with Xamarin where I had a long list of colors that the user can pick from. I created a Simple ListView inside my app to display all of the colors in a table. However, this approach presented some unexpected problems such as:
How do I display a preview of the color next to the text label in my ListView Cell?
How do I keep track of what colors are selected by the user?
How to display a checkbox next to a color once it’s selected?
If you haven’t noticed, I haven’t been blogging much lately. The main reason for this is because I was tired of running my blog on a slow cloud provider. Up until this past Friday, I migrated my blog to Digital Ocean from Microsoft Azure. The migration process was super simple and only took about an hour, to get things transferred to my new provider. Before the migration, I was consistently having performance issues with WordPress on Azure. For example, it took forever to publish a simple post, the page would consistently load for a while before I could start writing. Another issue was that updating plugins or other components of my website would cause WordPress to get stuck in Maintenance Mode. The only easy way to get everything working again was to use an FTP client and remove a certain file from the directory structure of my website. However, the main driver for the migration was the price per month to keep a relatively small site like this up all the time. The price was about $200 a month alone. Keep in mind, I also have various servers for the backends for various applications on Azure. After a while, keeping all this up was getting very expensive. I even asked Microsoft what my options were to improve performance and help on how to reduce my price. They had a few good suggestions, which I implemented but it still seemed slow. I had the option to upgrade the server running my blog to something more powerful. The recommended option was out of my price range.
As many of you know, I’ve been contracted to create two mobile applications for some local small businesses. One common requirement for both of these applications is that the final product needs to be available on the iOS App Store and the Google Play Store. With this in mind, I figured I would try using Xamarin to create these apps. As I started working on these apps, I documented most of the initial thoughts via an older post on my blog. Since then most my problems have been resolved. However, I did notice it was hard to find good resources on how to build things using Xamarin Forms. I was able to find some old resources via some searches on YouTube, but I was not satisfied with the quality of the content. With this in mind. I wanted to take this opportunity to share what I have learned so far. Like my other Swift tutorials, we are going to start out small and work our way up. Let’s get started!
The ListView is a pretty common control in cross-platform mobile development. In Xamarin Forms, a ListView gets rendered out as a UITableView on iOS and a ListView in Android. You can create a ListView programmatically or you can use XAML. Once you have created your ListView you can access it in your code via its name property. Next, you have to assign an ItemSource to your ListView. In my case, I used a Generic List from the System.Collections.Generic Namespace. From there you populate your list with whatever data is going to be presented to the user. When your List is configured, set your List Object as the ItemSource property of your ListView. If you followed along with this post your app should compile fine and a ListView should show up on your device. If you encountered an error, check your code for errors as needed. Full code samples below. Happy Coding.
Over the last couple of weeks, I have made great progress on two apps that I’m writing. Working on these two projects every week has been a personal goal of mine since I started this blog, and I’m excited to see what the future holds. However, this progress means that the development process starts to slow down and the testing phase begins. This past weekend, I spent most of my time getting ready to move my apps into testing mode. During this time, I developed some tips in order to help newer developers get ready for testing.
As many of you know, I like to stay busy. At any given time I have about two or three software projects going at the same time. Currently, I have 4 projects going right now. These projects include 2 mobile apps and 2 web-based projects. In addition to all of that, I work full time and attend college at night. However, I love being busy with my software projects because it helps me learn new skills and helps me get new client work. With that being said, I still find room in my day to taking care of myself, spend time with my family and to enjoy a good show on Netflix. To achieve a decent work-life balance, I had to develop a system in order to manage my time better in order to make room for my projects. The result is a four-step plan that anyone can follow in order to improve your efficiency.
If you follow me on social media, you might have noticed that I haven’t been promoting my content as much as I use to. The reason for this is because I recently got a project at work with an unrealistic deadline. In normal circumstances, I love these kinds of projects because I get to show off my software development skills and to prove that I’m just as good as my coworkers. However, this time was different.
If you have been following my blog since my first post, you may notice that I have made some substantial improvements to my site to help bring a better experience to my followers and new visitors. While I could make a blog post dedicated to explaining why I made these changes, I figured it would be boring, and perhaps the information would become out dated as time went on. However, I will write about some of the changes I made that you can implement on your blog or website right now.