The Joy of Forms with React and Formik

Mat Warger Articles, Development Technologies & Tools, JavaScript, React, Tutorial 9 Comments

React is a JavaScript library for building user interfaces. That’s it. It’s a way to use JavaScript to define UI elements based on user-defined properties and internal state.

It has a clean, functional style. You can create simple components that compose very well into larger components, which you can then use to compose pages and entire applications. This simple composability is one of the main reasons I enjoy working with it.

But, it is not an application framework. It doesn’t pretend to be. This can be useful when all you want is some quick UI. But, as the application grows, you will need to depend on outside libraries for things like state-management, routing, and forms.

In this article, learn how to handle form input with React, from basic form input using simple state through advanced form components using Formik….

Getting to Know Custom CSS Properties

Lawrence Chabela Articles, CSS & HTML, Development Technologies & Tools 1 Comment

CSS custom properties are very powerful way for you to spice up your style sheets. They are a way to separate JavaScript behavior and styling, as shown in the ability to set information in the JavaScript for the CSS to use for its styling.

Even if you’re using a preprocessor for your CSS, there is still a place for CSS custom properties to be directly embedded in your CSS.

In this blog: we introduce custom CSS properties, show why you want to use them, how to define them, and how to change them with and without JavaScript.

See Keyhole at Dev Up 2017

Lauren Fournier Bogner Articles, Community, Company News, Educational Event Leave a Comment

We are pleased to announce that Keyhole Software is a Platinum Sponsor of the 2017 Dev Up Conference.

Formerly known as the St. Louis Days of .NET and rebranded as Dev Up during the 2015 conference, the 10th annual edition will bring together regional and national IT experts to share their knowledge for technology.

Two speakers from the Keyhole Software team will present topics at this year’s event: Chase Aucoin & Billy Korando…. 

An Example Progressive Web App on Android

RJ Dela-Cruz Angular, Articles, Development Technologies & Tools, JavaScript, Mobile 6 Comments

In my experience, the best way to learn a new technology is to create something tangible with it. I recently sought out to learn Angular and Angular Material. So, I developed an experimental Angular app that uses omdbapi to query Movie Posters. It’s aptly named Movie Poster Finder.

Developing the Movie Poster Finder application, I ran into a thing called PWA, which is also known as Progressive Web Applications. I thought it was really neat that both Android and mobile Chrome treat them as native applications.

In this post, I will show an example Progressive Web Application in action, explaining what I encountered when turning an experimental Angular web application into a PWA.

Default image for blog posts - purely decorative

The Executable Code Review

Tim Broyles Articles, Programming, Testing Leave a Comment

Testing has a bad rap. The thought of writing unit tests to exercise code with the goal of 100% code coverage can be overwhelming for many projects. The number of man-hours to set up tests, create mocks when needed, test boundary conditions, contrive odd ball test cases can take some steam out of the project. If this is the definition of test, then yes, writing these types of tests can be tedious and feel meaningless.

I am a proponent of writing tests with a narrow focus. The tests I describe here show the completion of a story or the resolution of a bug. With this narrowness in mind, the task is much less daunting. My goal now is not about code coverage, but more about quality code. With this test, I want to be able to demonstrate to myself (and to whoever is reviewing my changes), that I have successfully resolved my task.

In this blog I will talk about my suggestions for writing meaningful tests in the context of a code review.