We are always working on new content so Treehouse students can stay up to date with the latest technology. This content roadmap contains everything that's planned for release. Please contact support if there is a course you want to take but don't see listed.
The dates reflected for each course are estimates and may change.
Learn how regular expressions can help you validate forms, search and replace in strings, and more. Regular expressions match patterns in strings. Pattern matching is a powerful tool programs can use to "understand" the text users type in.
The internet is an invaluable resource for information and entertainment, but it doesn’t always protect your privacy and identity. This course offers an overview on how to stay safe and secure when using your browser and beyond. We’ll introduce foundational concepts about how online activity translates to internet traffic. We’ll then explore some common ways that attackers can view and manipulate this traffic for their uses and how to protect against them. And finally, we’ll establish some industry-recommended habits to keep you and your data secure.
Build an Image Viewer
In this course, we're going to build an image viewer that allows a user to thumb through an album of images, select one and then perform the usual operations like pinching, zooming and so on. In doing so we'll develop and understanding of Scroll Views in iOS and how to implement paging.
Build A Selfie App
In this course we're going to build an app that is quite popular these days - a selfie app! We'll learn how to build and apply filters, how to use Core Data for more than just a single entity and how to use the device's camera to create a fun app!
Designing Interfaces in PHP
An interface is a type of contract that assures that certain abilities are available on on a particular object class. We'll write and extend multiple interfaces, then implement them to design and match functionality. Interfaces do not store any implementation details themselves. To share implementation details between classes, we harness the power of inheritance. Abstract classes prevent a parent class from being directly instantiated, while at the same time defining methods that MUST be implemented in any extending children. This course will combine interface contracts with class hierarchy to leverage the benefits of each concept. We'll explain the differences between interfaces and abstract classes, and give you the knowledge you need to build and implement both in your own projects.
Active Record Associations in Rails
Most of your Rails models are going to be connected to other models in some way. An Author has many Articles, and each Article belongs to an Author. A Doctor has many Patients, and a Patient may have many Doctors as well. Rails uses associations to make it easy to track these relationships in your database.
Introduction to Docker
Docker allows any developer of any language to package an app into a container, like a shipping container. Containers include an app and all the other software it depends on, like databases. Containers let your users easily run your website, app, or service on any operating system they want. This course will show you how Docker works, and how it can make it easier to distribute your software!
React by Example
Learn React programming patterns by building an application for keeping track of RSVP's! We'll start at the beginning, using create react app (https://github.com/facebookincubator/create-react-app) to initialize the project, and by the end you'll have a functional application.
Build a Simple Android App with Kotlin
This course covers the very basics of Android development. We will build a simple app that will serve up some fun facts when you tap on a button. We introduce you to programming in Android, a tool for Android development called Android Studio, and some very basic concepts of the Android Software Development Kit, or SDK. By the end you will have a good idea of how a basic app works, and you will be armed with the knowledge to start building more.
Prototyping in the Browser
Before you design a website, it's important to have some kind of a plan or a wireframe to guide your efforts. But sometimes when you go from a simple sketch to digital pixels, the results aren't exactly what you expect. When you work with real HTML and CSS, and you're able to see your site on a real screens, you're able to see a more accurate representation of the final result. In this course, we're going to build a website prototype using the Bootstrap web framework.
CSS Grid Layout
CSS Grid Layout provides a built-in, more efficient way of designing grid-based layouts in the browser. It brings a new set of properties and flexible units that let you control the exact placement and sizing of grid components.
Introduction to Selenium
As web applications grow in size it becomes difficult to reliably and thoroughly verify that the application behaves as intended. Manually stepping through the system gets tedious and time consuming. That's where automated testing tools become invaluable. In this course we will learn to use Selenium Webdriver, one of the most popular utilities for automating interactions with web browsers, to build automated tests for the purpose of verifying and maintaining a quality application.
Building Services with ASP.NET Web API
Services expose data and processes through APIs (Application Programming Interfaces) implemented using common approaches or standards. Decoupling our back-end from our front-end makes it possible for our services to support multiple client apps. We can even allow other developers and organizations to consume and use our services to further broaden the reach of our applications. In this course, you'll learn how to use the ASP.NET Web API framework to build a RESTful service or HTTP API. As you learn about Web API, you'll create a service for the Fitness Frog single-page web app (SPA) developed using Angular.
jQuery Basics (2017)
jQuery Basics covers why you'd want to use jQuery, what it is and how to include it in your projects. You'll build several projects over the course to give you the confidence to integrate jQuery in your own projects and add that level of flair and interactivity to any site you work on.
Saving Data on a Server
So far all our networking code could do was make GET requests but being able to send and save data to a server is just as important. In this course, let's improve our networking code and learn how to make a POST request. There are a lot of additional concerns when saving data and we'll spend some time talking about security, preventing malicious input and much more.
Unit Testing in iOS
Unit testing allows you to test your application for logic errors, prevent crashes, and even write better code. In this course, we cover the philosophy behind unit testing, ways we can structure our code to make it more testable and look at tools we can use to test our code. We'll look at both tools that come built in, like the XCTest Framework in Xcode, as well as a few third party solutions for both Objective-C and Swift.