Recently, I wrote a blog post called The Gear I Use To Get Things Done. In that post, I outlined all of the computers and other gear I use to get my work done. Out of the list of products listed was a 2015 13″ MacBook Pro with Retina Display. It was a great computer for the time and it served me very well, until two weeks ago. During this time, I was browsing my Twitter Feed and saw numerous posts about discounts on the 2017 and 2016 MacBook Pro 15″ with Touch Bar at B & H Photo. Since I was in the market anyway for a more powerful laptop, I decided to check it out. However, the specs of the machines that had the discount were not going to be enough for my workload. With this in mind, I would look out for a good deal until Apple decides to update the MacBook Pro for 2018.
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.
At the time of writing this post, I have been blogging about my software development career for over a month. Without a doubt, this has been an awesome career move for me. Ever since I posted my very first post I’ve gotten multiple compliments on the design of this website. These comments specifically surprised me the most, since I’m not a designer at all. However, I’m willing to work on the design of my apps until it looks good. I realize that I have not talked about iOS development lately. Don’t worry, I just finished the iOS app for Park-Lane Tobacconist. I think the app turned out quite well, and I definitely have plans to write about some new topics I learned during the process of making that app. I also plan to expand my writing in the area of mobile development to include Xamarin. I recently took on a cross-platform mobile application project, as a reason to check out the latest versions of the technology. I’m still in the early stages of this new project but my early thoughts on using cross-platform tools will be coming out in the next couple of weeks.
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.
I have to admit, I’m short on time this week. Between going to school, working full time and side projects, I’m a very busy guy. Personally, I do not mind being so busy because I know this hard work is going to pay off in the long run. With that being said I figured it was time to write this post that I have been putting off for a while. This week I’m going to talk about all the gear I use to get things done. This list includes the hardware and software that I use in my daily workflow. Some of the items have an Amazon link in case you wanted to buy them for yourself.
For those who know me personally you might be aware that I’m learning VB.Net for use at my day job. Up until a month ago, I was using my C# skills to create applications and API’s for my employer. However, this caused a problem and management told me I had to learn VB.Net ASAP. To be honest I had no problem with this because, I could probably find some good online resources that could teach me the language rather quickly, since I already knew the .Net Framework. However, things went down hill really fast. Most if not all the resources for learning VB.Net are either very out dated or very poor. With not having any luck, I decided to find a Microsoft Virtual Academy course on VB. However all the offerings Microsoft had were considered retired, and recommended that I learn C# instead or try this VB for Absolute Beginners course.
That course didn’t satisfy me. I didn’t need to learn how to use Visual Studio or how to use certain data structures. I knew all that from C#. Since VB and C# use the same .Net Framework and CLR. I can easily move my existing coding skills to the older language. I eventually found this course on Udemy. I took the course shortly before Christmas and found it to be very helpful. But still didn’t have the content I was looking for but, it seemed to teach what I wanted to know. Soon I began to practice my VB skills. I made a handful of small apps but nothing major. After feeling pretty good about myself, I decided to try some common CRUD actions using Entity Framework (EF), a popular ORM for .Net, and one of my favorite tools. I ran into the same issue with the initial VB learning. All example code was in C# not VB. I eventually figured it out but getting EF to work in VB is not straight forward and its very ugly with the syntax. For those that are curious here is a sample incase your wondering how it looks:
Comparing it to the C# syntax its very messy and verbose. In addition if your using Pogo classes in a MVC project You need to import them one at at time instead of importing the models namespace. Even though I’m sill learning VB its very clear that it is a afterthought at Microsoft and all development efforts are still focused on C#, as it should be. However, if your just starting out do not learn VB. You are more likely to see a C based language like C# rather than a language based on BASIC. Its only a matter of time before VB is retired. Please feel free to comment or reach out to me on Twitter with your thoughts.
If your reading this, then you stumbled on to my next post since writing my introductory post on New Years Day. If you have not read that yet, I strongly suggest you do that to learn more about why I’m blogging. Anyway, today’s post is all about some recent findings I discovered during the development process of the ParkLane iOS app. My use case is pretty simple and common for the platform. I have a login and sign up ViewControllers inside my app where the user can fill out some fields to create an account in our database or login into a existing one. However, I needed some kind of alert to pop up on the screen to tell a user if one of the following errors occurred:
- Wrong Email
- Wrong Password
- Wrong Email and Password
As you can tell this presents a problem. I know Apple has something to solve this called a
UIAlertView. Its pretty simple to use, it looks like this:
let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message",
delegate: self, cancelButtonTitle: "Ok", otherButtonTitles: nil)
// show alert on screen
I wasn’t worried to use this code because I’ve used it before, However Xcode presented me with this warning:
UIAlertView is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead
This left me puzzled, after doing some research this change occurred around the release of iOS 8 in 2014. After thinking about it some more, It must have been a change that I simply missed, and I take the blame for it. In a request to redeem myself I took out the old UIAlert code and replaced it with the newer
After trying this new API, I have to say I like this better than the old UIAlertView. The newer framework seems like more work, but your getting more control over your alerts. Here is a quick code example to show you the difference.
let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
If your familiar with how iOS views work the this seems pretty straight forward. I bet developers that don’t understand iOS or Swift can figure out what this code does. I also enjoy that the
addAction method has a completion handler in order to execute some custom code when you tap a button on the alert.
Before I go, I realize that this first iOS post was pretty simple but do not worry. I have plenty of content coming up on more advance topics. So keep following my blog and be sure to follow me on Twitter to be alerted when new content is posted.
At the time of writing this post, its currently New Years Day. I figured today would be the perfect day to layout my vision for this site, and talk about some goals for my software development career in 2018. For easier reading purposes, I have broke down each of my goals into sections.
Why start a Blog?
This past summer, I read a book called ‘Soft Skills: The software developer’s life manual’ by John Sonmez. This book has changed my perspective on life, In return I begin to start the journey to take back my time and try to work for myself. This book explains how important it is to market skills as a software developer in order to get new clients and maybe a higher paying job. This book also mentions multiple times that a blog is a perfect medium to market my skill sets through blog posts and links to previous work. However with that being said, This isn’t my first time blogging. I’ve been trying to blog about various topics ranging from programming, tech news and video games for many years, but at the time I was very young and was not thinking about a long term career goal. This time it is a completely different perspective, I really want to be able to turn my skills into a sustainable business where I can be happy with the work I’m doing while taking back my time. Blogging into 2018 should help me do that while being able to market myself.
What are you going to be blogging about?
This is a very good question. While I was building this site, I often thought about what I’m going to write about. After some thinking I came up with the following ideas.
- Documenting the progress on my side projects: At the time of writing this, I’m currently working on two side projects. Both of these projects I’m extremely passionate about and generally enjoy working on them. However, I think writing about these projects will help potential job recruiters and new developers some perspective on what technologies I know and use.
- Documenting my experiences learning Swift again: It is no secret that I love Apple and the iPhone. When the Swift Programming language was announced in 2014. I was hooked. The announcement couldn’t not have come at a better time either, I was just about to graduate high school and start my first year of community college. With that in mind, I stayed up late reading Swift tutorials, watching Swift YouTube videos and reading the official Swift iBook. I made a few apps and submitted them on the App Store during that summer. The apps were not very good, but I was proud of them. However, I also wrote a lot of Swift code. (most of which I lost due to a hard disk failure :/). Since I started working full time, I haven’t had a chance to use Swift, Most of my day is spent in Visual Studio and C#. Don’t get me wrong, C# is one my personal favorite languages and tools like Xamarin make it possible to develop mobile apps in C#. However, through my experience, these tools are hard to use and I have ran into problems with them. With that being said, I can’t wait to start learning Swift again and to create better apps.
- Software Development tips and tutorials: This is a pretty generic topic but I figured since developing software is a learning process. I figured I would create some content on how to accomplish certain tasks, tutorials on certain frameworks and languages and good tips for newer developers.
How often are you going to post?
This is a easy one! My goal is to post one blog post a week on any of the following topics outlined above.
If your still reading this, congratulations you have made it through my first blog post. Its only going to get better from here. If you have questions, comments and concerns please use the contact section of the home page or email me if you want to get a hold of me.