mark gilchrist

mark gilchrist

Pro Student

london

working freelance as an ios/android/javascript developer at the moment, I am doing tree house to learn more

Skills & Experience

  • Company

    BookingBug

  • Job Title

    Mobile Developer

  • Spoken Languages

    • English
    • French
  • Looking for work

    Yes

433 Achievements

  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • Updating the Data Model
  • Searching Names
  • Sorting Algorithms
  • Connecting Room to the UI
  • Working with Room
  • Data Persistence Basics
  • User Input in Android
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Decoupling the Data Source
  • Sorting Contacts Into Sections
  • Static Table Views for Detail Interfaces
  • Displaying Contact Data
  • A High Level Overview
  • Dark Sky API Client
  • Downloading JSON Data Asynchronously
  • Fetching Data From the Web
  • Modeling Forecast Data
  • Generic Types
  • Generic Functions, Parameters and Constraints
  • Building Standard Library Functions
  • Closure Expressions
  • Adding Sound Effects
  • Personalizing The Story
  • Refactoring Our Code
  • Creating the User Interface Programmatically
  • Creating a Story
  • Navigating Through An Adventure
  • Using the Delegate Pattern in iOS
  • The Delegate Pattern
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Security: Solutions
  • Security: Concerns
  • Getting Started with Android
  • Access Control
  • Memory Management in Swift
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization
  • Properties
  • Writing Great Swift
  • Introduction to CollectionViews
  • UI Testing with Espresso
  • An Introduction to Swift Programming
  • Adding the UI
  • Learning Anko
  • Is This Thing On?
  • Putting It All Together
  • Modelling Solitaire
  • Hello Kotlin!
  • For All Intents and Purposes
  • Decoupling the Data
  • Saving Data with CloudKit
  • Recording a Voice Memo
  • Intro to Unit Testing 2
  • Filtering the Data
  • Saving and Displaying Selfies
  • Introduction to Unit Testing
  • Adding Metadata to Photos
  • Adding Image Filters
  • Taking a Selfie
  • Deleting and Updating Data
  • Fetching Data Using Fetch Requests
  • Inserting and Saving Data Using a Context
  • Understanding the Core Data Stack
  • Paged Scrolling
  • Understanding Scroll Views
  • Understanding Classes
  • Why Object-Oriented Programming?
  • Obtaining a Location Fix
  • Implementing Maps and Search
  • Displaying Data in Table Views
  • Enhancing the Networking Stack
  • How To Test Our Code
  • URLs and Parameter Encoding
  • Auto Layout in Code
  • Visual Format Language
  • Objective-C in Action
  • Intermediate Topics in Objective-C
  • The Objective-C Mindset
  • Basic Types, Structures and Syntax
  • Moving from Swift to Objective-C
  • Introduction to UITableView
  • Trait Collections
  • Inequalities, Content and Priorities
  • The Constraint Equation
  • A History Lesson
  • Implementing a Forecast Client
  • Protocol Oriented Networking
  • Fetching Data From the Web
  • Modeling Forecast Data
  • PHP Inventory
  • PHP Includes
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • Scrum Artifacts
  • Scrum Events
  • Introducing Scrum
  • What is Agile?
  • Beginning HTML and CSS
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  •  Working on a Team
  • Working By Yourself
  • Asynchronous Error Handling
  • Closures in Cocoa Touch
  • Building Standard Library Functions
  • Closure Expressions
  • First Class Functions
  • Introduction to HTTP
  • Hello, GitHub!
  • Getting the REST You Need
  • GET and POST Requests in a Browser
  • How it Works
  • What to Test
  • How To Test
  • Why Test
  • MASH JavaScript
  • MASH CSS
  • Generics with Swift 2 - Beyond Basics
  • Generics with Swift 2
  • MASH HTML
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • Computer Languages
  • Computer Basics
  • WWW
  • The Internet
  • Python Objects
  • Dungeon Game
  • Tuples
  • Dictionaries
  • Tablet Time
  • Ingredients and Directions
  • Managing Fragments
  • Slices
  • Lists Redux
  • Introducing Fragments
  • Letter Game App
  • Adding Sound Effects
  • Refactoring the Model
  • Shopping List App
  • Creating the User Interface Programmatically
  • Creating a Story
  • Navigating Through an Adventure
  • Memory Management in Swift 2
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Number Game App
  • Database Security
  • Object Initialization in Swift 2
  • Properties in Swift 2
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • Queries & Results
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Delivering the MVP
  • Getting Started with PDO
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Creating a Long Term Business
  • Protecting Yourself With Contracts
  • Establishing a Proper Workflow
  • Pricing and Project Proposals
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Finding Your First Project
  • Starting a Freelance Career
  • Adding Data to a Database
  • But Wait There's More!
  • Bound Services
  • Introducing Services
  • Threads in Android
  • Particle Systems and Keeping Score
  • Artificial Intelligence and Sound
  • Physics and Collision
  • Actions and Animations
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • Ordering, Limiting and Paging Results
  • Game Loop and Texture Atlas
  • Intro to Sprite Kit
  • Immersive Examples
  • Scope and Loops
  • More Operators
  • Operators and Conditionals
  • Data Types and Variables
  • Intro to Objective-C
  • Tying It All together
  • Diving Deeper
  • Memory, Arrays and Loops, Oh My!
  • Getting Oriented - Object-Oriented, That Is
  • Running Apps on a Device
  • Improving Our User Interface
  • How Ruby Works
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • Structs as Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • Differentiating Between Objects
  • Class Inheritance
  • Classes
  • Complex Data Structures
  • Function Parameters
  • Functions in Swift 2.0
  • Cocoapods
  • Creating Flexible Objects Using Protocols
  • Swift 2.0 Protocols
  • Error Handling in Swift 2.0
  • Adding Push Notifications from Parse.com
  • Updating Other GridViews
  • Customizing a GridView for Friends
  • Customizing a ListView for the Inbox
  • Customizing the Action Bar
  • Using Custom Styles and Themes
  • Customizing the Login Screen
  • Starting with Design Mockups
  • MVC
  • Notifications
  • KVC and KVO
  • Singletons
  • Two-stage Object Creation
  • What Are Design Patterns?
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling An Interface
  • Getting Started with Java
  • Control Flow with Conditional Statements
  • Control Flow With Loops
  • Swift Dictionaries
  • Introduction to Collections
  • Implementing the Detail View
  • Custom Table View Cells
  • Next Week's Weather
  • Upgrading Stormy
  • Introduction to Table Views
  • Creating Flexible Objects with Protocols
  • Protocols
  • Refreshing the Data
  • Adding Weather Icons
  • Managing Complexity
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Interacting with Google+ APIs
  • Connecting to Play Services
  • Interacting with Your API
  • Self-Destruction
  • Retrieving and Viewing Messages
  • Adding Play Services to Your App
  • Sending Messages
  • Capturing Photos and Videos
  • The Project
  • Introducing SharedPreferences
  • The Activity Lifecycle
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • ADS Writing and Preparation
  • Introduction to UI Design
  • Migrating a SQLite Database
  • CRUD Operations with SQLite
  • Using SQLite for Structured Data
  • Key-Value Saving with SharedPreferences
  • Customizing Table View Controllers
  • The Logo Sprint
  • Logo Design 101
  • Why Version Control Matters
  • File Storage
  • Functions as First Class Citizens
  • Introduction to Data Persistence
  • Interacting With Data From the Web
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Delegation in iOS
  • Introduction to Delegates
  • Simple Data Structures
  • Closures in iOS
  • Closures and Closure Expressions
  • Refactoring Our Code (Swift)
  • Building the Master and Detail Views (Swift)
  • Building a Music Library and Playlists (Swift)
  • Start menu and App Icon
  • Sound Design
  • Animating and Saving Sprites
  • Designing Characters and a Scene
  • Introduction to Game Design
  • Using a Navigation Controller With Segues (Swift)
  • Working With Multiple View Controllers (Swift)
  • Deploying to a Device
  • Debugging Our App
  • Improving Our User Interface
  • Using a Data Model
  • Views and View Controllers
  • Getting Started with Xcode
  • Swift Value vs Reference Types
  • Swift Properties
  • Swift Inheritance
  • Swift Classes and Objects
  • Swift Structs and their Methods
  • Swift Enums and their Methods
  • Swift Enums
  • Swift Optionals
  • Swift Parameters and Tuples
  • Swift Functions
  • Control Flow
  • Collections
  • Operators
  • Types
  • Variables and Constants
  • Relating Users in Parse.com
  • Using Fragments for Tabs
  • Adding Users Using Parse.com
  • Starting the App
  • JavaScript Variables
  • Introducing JavaScript
  • Acting on List Item Taps
  • Lists with RecyclerViews
  • Using Parcelable Data
  • Custom ListViews
  • Standard ListViews
  • Updating the Data Model
  • Hooking up the Model to the View
  • Building the Weather UI
  • Working with JSON
  • Concurrency and Error Handling
  • Networking
  • Exploring an API
  • Using Git for Android
  • Getting Started with Genymotion
  • Getting Started with Android Studio
  • Solving an Important Problem
  • Publishing on Google Play
  • Finishing the User Interface
  • The Model-View-Controller Pattern
  • Intents and Multiple Activities
  • User Input
  • Finishing the User Interface
  • Using Auto Layout and Managing the Keyboard
  • Implementing Custom Login and Sign Up Screens
  • UIKit Dynamics
  • View Controller Transitions
  • Gestures
  • What is an API?
  • Downloading Data with NSURLSession
  • Testing and Debugging
  • Improving Our Code
  • Coding the Fun Facts
  • Basic Android Programming
  • Creating the Initial Screen Layout
  • Getting Started with Android
  • Collection Views
  • Custom Detail View Controller
  • Custom UITableViewCell
  • Deleting Data
  • Listing Data using NSFetchedResultsController
  • Inserting and Saving Data
  • Understanding Core Data
  • Retrieving and Viewing Data from Parse.com
  • Capturing Photo and Video Using UIImagePickerController
  • Relating Users in Parse.com
  • Using Parse.com as a Backend and Adding Users
  • Designing and Starting the App
  • Viewing a Web Page
  • Adapting Data for Display
  • Data Modeling
  • Getting Data from the Web
  • Rebuilding from Scratch
  • Exploring the Master-Detail Template
  • Refactoring Our Code (objc)
  • Building the Master and Detail Views (objC)
  • Managing Playlist Data (objC)
  • Building a Music Library Model (objc)
  • Working With Multiple View Controllers (ObjC)
  • Deploying to a Device (ObjC)
  • Debugging Our App (ObjC)
  • Improving Our User Interface (ObjC)
  • Creating a Data Model (ObjC)
  • Views and View Controllers (ObjC)
  • Getting Started with Xcode (ObjC)
  • Beyond the Basics
  • Advanced Objective-C
  • Foundation Framework
  • Introduction to Objective-C
  • Pointers and Memory
  • Functional Programming in C
  • Fundamentals of C
  • Newbie