Creating Page Files for Spectron Tests

Now that we’ve got Spectron working, let’s add some more to it to help with our testing. One way of doing end-to-end testing is to have a separate file that contains our page objects and any helper functions specific to that page. This will help the readability and maintainability of our tests. The latest code…

End-to-end Testing Electron Apps with Spectron

You’ve built a really awesome Electron application, but you want to include a few automated tests to make sure a regression doesn’t occur? Spectron is here to help! Spectron is Electron’s end-to-end testing library. Let’s see how it we can set it up to use in our own Electron projects. If you want to go straight…

Why can’t I use the “dynamic” C# keyword in Xamarin.iOS?

Occasionally I see this question pop up in various forms; usually an app developer has written some fairly clever code that relies on the dynamic keyword in C#. Their code runs swimmingly on every other platform—and it also compiles just fine for iOS. But when they run the app on a physical iPhone or iPad…

Using XAML in F# Xamarin Forms – A Screencast

Now that we’ve seen the awesome new stuff in Xamarin Studio for F# let’s go a bit further and actually use some of those improvements to our advantage. However, instead of just a regular blog post, I thought it’d be worthwhile to do a screencast for y’all. You can view the demo code directly on…

F# Improvements in Xamarin Studio

With the (almost) stable release of Xamarin Studio 6 comes a ton of great new improvements. I absolutely love the new dark theme! However, some huge improvements were made to the IDE for F# support, as well. Improvements that I feel may have gone without much notice. So I wanted to help get those improvements…

NG-Conf 2016 – Day Three Wrap Up

The last day of ng-conf 2016 continued with lots of great information. Some highlights: Daniel Rosenwasser gave a good overview of TypeScript and a little bit of its history. He also demonstrated benefits of using TypeScript with Javascript directly. It can be beneficial in catching things in regular Javascript code (serving a similar purpose to…

The Future of Angular2, and More Updates From NG-Conf 2016

Some highlights of day two of ng-conf 2016: Day two started with a focus on the future of Angular2. No, they didn’t announce Angular3, but they did focus on the work they are finishing up and looking towards the future. For example, work is in progress to build an offline compiler for Angular2 applications. This…

Highlights From Angular’s NG-Conf 2016

I just finished up the first day of ng-conf 2016 and as usual, it has been a great informative conference. Thanks to the organizers, sponsors, and Angular team members for all your efforts. Here are some highlights from today: Brad Green’s keynote address, of course, covered the big picture of the Angular development work. The…

Using Redux to Manage Angular2 Application State

In this post, I want to focus on managing application state. In the example application, I tried to create an application that had a reasonably complex user interface (“complex” is relative here, of course). The user interface needed to show where changes in one area of the page had immediate impact on other areas. If…

Angular2 Series

As we add posts in the Angular2 series, this post will get updated. Big Ideas Behind Angular2 Container and Presentation Components in Angular2 Yes, I used jQuery in my Angular2 application Using Redux to Manage Angular2 Application State  

Yes, I Used jQuery in My Angular2 Application

An astute observer has probably noticed that I’m using jQuery in my Angular2 example application. “The horror! Revoke his Angular2 license now!!” I’m in no way saying this is a best practice or even a good practice. Including jQuery is not required or even desirable for most Angular2 applications. Angular1 had a dependency on jQuery…

Container and Presentation Components in Angular2

Angular2 has a strong emphasis on components. An application is made up of a tree of components, starting from the root component and working down to child components. This helps to organize your application into logical and manageable pieces. Complex user interface can be broken down into smaller components, assembling them together, to better organize…