SwiftStudentChallenge 2022!

It’s that time of year again, and we have such a limited time!

The Swift Student Challenge is on and it’s a great opportunity to push yourself to create something of which you can really be proud.

Now, the deadline is April 24th at midnight (Pacific time, but, as I say in the video, I would encourage you to push for your own local midnight… something always goes sideways at the end and you want to have plenty of time).

The challenge, this year, is centered around Swift Playgrounds 4, and its ability to build full-fledged apps!

I threw together a little video to help you read the T&Cs and maybe find a path towards an app you can really get stuck into. Check it out here:

And here are a few links to help get you on your way…

Swift Student Challenge: https://developer.apple.com/wwdc22/swift-student-challenge/

The full T & Cs for the Swift Student Challenge: https://developer.apple.com/wwdc22/swift-student-challenge/policy/

Apply now: developer.apple.com/wwdc22/swift-student-challenge/apply

For students younger than 13 in the US or 16 in Europe, get your guardian to email [email protected] allowing you to apply.

Getting Started

Swift, Apple’s Open Source Language: https://www.swift.org

Swift Student Challenge on the Developer Forums: https://developer.apple.com/forums/tags/swift-student-challenge/

App Gallery Tutorials: https://developer.apple.com/tutorials/sample-apps

Inspiration from past winners: https://www.wwdcscholars.com

Themes

These are not the only themes you could use for inspiration or focus, but they’re a good start:

The Process

App Design Journal: https://education-static.apple.com/coding-club-kit/appjournal.key

App Design Workbook: http://education-static.apple.com/coding-club-kit/appworkbook.key

Best of luck!

EU Code Week 2021 is Here!

It’s October again and that means EU Code Week is back!

And this year I’m working on a little project with a few brilliant folks on an EU Code Week Challenge called the Inclusive App Design challenge.

The challenge is all about considering people from many different backgrounds with many different types of abilities when you design your apps.

The Activity & the Audience

Keynote

This activity is perfect for teachers who might have an iPad 1-to-1 classroom or school, but you can adapt it, no matter the gear you have on hand.

It’s also perfect for you if you don’t have a background in coding. We spend a lot of the activity just thinking about what makes an app and how we might design it to accommodate all sorts of users.

Introduce -- Brainstorm -- Plan -- Prototype -- Share
Working through the process

Now, we will still touch on coding, of course, as it is EU Code Week, but hopefully we’ll do so in as non-threatening a way as possible. To do that, I’ll show you Swift Playgrounds and the really fun Answers playground.

Answers playground icon
Answers Playground

This is a playground where students write code to get answers from their fellow students and can use those answers in their code later.

You’ll see how you can design your code and app at all sorts of levels.

For those who want to build out their creative vision, you’ll learn about Keynote prototypes and the power you can wield, putting your idea in people’s hands.

You can read more about the activity and what’s involved here: https://apple.co/eucodeweek_UK

Try it with Us

October 21

If you want to see how you might use this activity in your class, feel free to join us!

We’ll be running a 90 minute session on Thursday, October 21st at 18:00 CEST. We’ll walk through how to approach the activity and what you can do in your own classroom.

Register here: https://ec.europa.eu/eusurvey/runner/Inclusive-App-Design-CodeWeek-Apple

I hope you’ll be able to come; I think we’ll have some great tips and tricks for you to use this in your own classroom!

DocC for Building Tutorials

One of my favorite things from WWDC21 this year was the DocC stuff. The funny thing is, I had NO IDEA it would be one of my favorites until Saturday, when I was catching up on some sessions.

There are the heavy hitters, of course, like the SwiftUI sessions, the announcement that you’ll be able to build and submit apps to the App Store from the next version of Swift Playgrounds. But this was a sneaky, wonderful surprise.

But go check out Building Interactive Tutorials with DocC. That’s an amazing session that I, as someone who tries to teach coding, found incredibly useful. You can build tutorials like the ones for SwiftUI and App Dev Training that Apple have shipped.

Build Your Own

That’s a good start, building rich tutorials that show up in the Xcode documentation window. Buuuuuuut, if you check out Host and automate your DocC documentation, you’ll see that you can put it up on your own site!

You need Xcode 13, the beta, to build documentation, but your students don’t. You can export the DocC archive, put it up on a website, and away you go!

Now, it was a bit more work than just “upload it to a website and you’re good to go.” I’ll go into the details of what you need to do, from a practical standpoint, in the future.

But for now, you can now browse the start of a series of tutorials all centered around the QuestionBot.

It’s a Swift package based around a QuestionBot type. The tutorial series takes you through building the QuestionBot as a command-line tool in replit.com, then using UIKit to build the project you see in Develop in Swift Explorations, then, finally, the SwiftUI implementation you may have seen (or will see) in our Teaching Develop in Swift Online class!

At the moment, there’s only the first tutorial, the others are coming soon. But I love the UI for the tutorials and how much easier it was to throw it together this way.

There’s also a really nice, comprehensive documentation page where you can check out the API for QuestionBot and still navigate to the tutorials to see how you might use that code in practice.

Like I said, I’ll detail how I built that tutorial in a future post, but in the meantime you can see the results. It’s rare we get to ship stuff they just announce at WWDC, and ‘m so psyched about writing some more tutorials and having them look excellent out of the gate!

WWDC Favorites?

I hope you’re all enjoying WWDC21 so far!

There’s so much to chew on, from SwiftUI improvements and additions, Xcode Cloud, RealityKit additions, Object Capture, Accessibility. AND BUILDING APPS IN SWIFT PLAYGROUNDS!

But I’d love to hear from you, what is the most exciting technology or thing they’re highlighting at WWDC this year?

Who knows, this might help us add things you care about to Teaching Develop in Swift Online in two weeks!

Build your own QuestionBot

Happy WWDC! It’s that magical time of year when developers working on Apple platforms have all their dreams come true!

Well, okay, maybe not, but we get a very fun week of new tech and demos and excitement about the platform.

If you’re watching all of this (or watching the people watching it and wondering what the heck is all the fuss about), we’ll probably have some words about it this week. But before that all kicks off, I threw a little playground up for you to experiment with, especially if you’re new to Swift, Apple’s programming language for iPhone, iPad, Mac, Apple Watch, and AppleTV apps.

QuestionBot

There’s a really fun exercise in Develop in Swift Explorations called QuestionBot. In it, you build the brains of an app to answer whatever question a person might type in. You can make it super complicated, or very, very simple.

We use this exercise during our Teaching Develop in Swift online class, and it’s usually impressive how different the apps can be.

Well, now, even if you don’t have a Mac, you can play around with QuestionBot. I created a REPL on replit.com with some simple instructions so that you, too, can create a functioning QuestionBot. Try it out:

http://replit.com/@mhanlon9/questionbot

There are two files, just tap on the Code tab and you’ll see main.swift and QuestionBot.swift.

Those show you the brains of our app.

The fork button

If you want to edit the code, just tap on the Fork button, which will create a copy of the code. You need to create a free replit.com account or link it to your Google, Github, or Facebook account, if you have one.

If you want to change QuestionBot’s behavior: how it asks questions and how it answers them, look in the QuestionBot.swift file.

If you want to change something else about the program, maybe limit it to only allowing you to ask three questions, or only letting people ask it questions on a Thursday, you would edit the main.swift file.

Coding for All

I really like replit.com because you can use it with any device, and it’s a great way to get an introduction to Swift before jumping in with an iPad or Mac.

I’ll be recording a short video introducing the QuestionBot on replit.com in the near future, but in the meantime, good luck coding!

WWDC21 Wish List

Last year we had a little wish list for WWDC, so I figured I would take a look at what we’d love to see today.

Last Year

Well, first, what did we get last year?

From our list, we did wind up getting new books, a whole load of them! Some didn’t ship during WWDC, but now we have Develop in Swift Fundamentals, Develop in Swift Explorations, Develop in Swift Data Collections, Everyone Can Code Adventures. That’s quite a lot of stuff to read through!

We even now have a huge resource in the App Design Workbook, which introduces app design process as well as a bit of SwiftUI in Playgrounds to keep you busy.

One thing on our wishlist was more dev on iPad, and Swift Playgrounds is still getting a lot of love, which is excellent, and getting more interesting with each release on both the Mac and iPad.

This Year’s Wish List

Okay, so what would we love to see this year?

Obviously I’m biased towards things that will help us teach coding, but I’ve got a few more this year I’d love to see under the proverbial WWDC Tree.

Swift Playgrounds

  • I would love to see an easier way to author Swift Playgrounds (like last year). I’ve run two sessions on creating Swift Playground Books, one with the Swift Playground Author Template and one by copying an existing playground book.
  • I loved the sessions on Swift Playgrounds last year, in particular the first in the Swan’s Quest series. It would be amazing to see more this year. Using those sensors is pretty amazing and eye-opening for a lot of students.
  • A Swift Playgrounds Community site: some sort of way to easily share Swift Playgrounds with students, fellow developers, where you can just show off your work easily, would be amazing. Think of it like a dynamic Swift Playground feed people could publish to easily from within the Swift Playgrounds app…

Xcode and teaching Develop in Swift

  • If Xcode had a remote sharing option, so the teacher or co-coder could observe one person typing, that would be an amazing addition to teaching coding. It’d be icing on the cake if we got the same with iPads and Swift Playgrounds, and I need to have a look at the Classroom app update to see if maybe that’s already done.
  • Some of these collaboration features would be a real boon to teaching people how to code, especially in as rich an environment as Xcode, so any more integration with Github, remote sharing, and the rest would be much appreciated
  • A web-based version, for those folks who want to try out Swift and app development, would also be amazing. I really like repl.it, especially with its implementation of the Swift REPL and readLine()… but it never hurts to have more options.

RealityKit and Reality Composer

  • Lastly, and by no means is this an exhaustive list, I would really, really love to see the ability to support more than one image anchor in a Reality Composer scene. We’ve had a few questions lately about supporting them inside the one Reality Scene… and while there are ways to handle this (multiple scenes for each image anchor you want to support, using code and loading ARImageAnchors yourself), this would be a really fun addition to an incredible app. Reality Composer makes it so easy to create engaging, robust experiences with very little to no code already, but a few additions would just ice the cake.

Now You

WWDC21

That’s our list, what do you want to see from WWDC21?

#SwiftStudentChallenge: How to Build a PlaygroundBook, Part 2

#SwiftStudentChallenge

Well, that was a ton of fun Thursday!

As some of the commenters mentioned, that is a daunting session. Xcode, Swift Playgrounds Author Template, mucking around in packages in the Finder, it can certainly be overwhelming.

But the goal of these sessions is to show you how you can create a playground book, for use on an iPad in Swift Playgrounds. And Thursday was definitely not for the faint of heart.

Like we mentioned in the description of the video, if you’re really creating a playground book, you’ll want to read the Swift Playgrounds documentation. That will give you loads more information on how playgrounds are structured, how your code will interact with the app when it’s running, and other cool stuff.

Part 2

Mac image
You will need a Mac for this session.

Like Thursday, we’ll be using a Mac for the next session. We’ll also possibly be using an iPad, to show you how to edit on the fly on your iPad. I haven’t quite thought that one through, though, so buyer beware.

The goal of this session will be to show you an alternative way of creating a Swift Playground Book, in case the other way was too overwhelming.

We’ll monkey around with a playground book and see if we can’t cobble something interesting together.

Ask Questions

Do you have an idea for your Swift Student Challenge but have some questions?

I can try my best to answer them on the air, come along and ask during the session!

#SwiftStudentChallenge: How to Build a PlaygroundBook

#SwiftStudentChallenge

Better late than never, let’s try a live session!

Tomorrow, April 15th, at 1pm, Irish time (2pm CET), I’ll jump back on the live stream (or jump right to the stream here). We’ll walk through creating a Swift Playground Book with the Swift Playgrounds Author Template.

The main goal of this session is to show you how to get ready for the Swift Student Challenge for WWDC 21

Get a Head Start

You will need a Mac for this session.

If you want to get a jump on the game, you can go and download Xcode, first and foremost, if you don’t have it already.

The next thing we’ll be working with tomorrow is the Swift Playgrounds Author Template. You can download this from developer.apple.com. You will need to have a free developer account set up, which you can do when you’re prompted to log in.

Building Your Playground

Other than those tools, you could come with an idea for what you want to build. The standard is high for these student submissions, but maybe the idea you implement this time becomes a mind-blowing playground book for WWDC2022. Or you learn how to build something your friends and family can run on their iPads.

Or are you looking for inspiration? Maybe seeing how we can build Swift playground books might jog some idea out of you.

Whatever stage you’re at, whatever ideas you have, feel free to join us tomorrow. Or if that time doesn’t work for you, catch the recording!

Ask Questions

Do you have an idea for your Swift Student Challenge but have some questions?

I can try my best to answer them on the air, come along and ask during the session!

WWDC21 Dates Announced!

Update: Due to the due date for submissions for the Swift Student Challenge, the live sessions will likely be the week of the 12th of April. See you then!

It looks like you’ll have another set of dates to block off on your calendar in June, in addition to the ones I told you about last time!

Apple has just announced that WWDC, their Worldwide Developer Conference, will be held online from the 7th to the 11th of June this year!

Details are scarce right now, other than the dates, as per usual, but there’s plenty of info about the Swift Student Challenge!

If you’re 16 years of age, here in Europe, 13 in the States, you can submit your playground to show off your skills with Swift. Last year we ran a lot of sessions talking about the Swift Student Challenge. If you’re curious, you’ll find it in the AR sessions.

#SwiftStudentChallenge

It’s just the nugget of an idea, but in late April and May I’m planning on returning to the live stream. We’ll work on some ideas for Swift Playgrounds that you (or your students) could use.

As I’ve only just had the idea of kicking it off, I’m still thinking through the content and format, but we can certainly show off some of the fun stuff you can do with Playgrounds.

If you’re a teacher, feel free to join the Teaching Swift Slack and drop me a note and maybe we can have your class on to talk about ideas for the Swift Student Challenge.

If you’re a student or you don’t want to join yet another discussion board, shoot me a note. I’d love to hear what people have planned or help you get started!

I’m always inspired by the work put in by these students, and would love to help more people strut their stuff.

Watch this space for more news and when we’ll be broadcasting, but it should be a lot of fun!

Teaching Develop in Swift – March 2021 Edition

Are you a teacher who is trying to figure out how to teach coding, and app development in particular?

Are you a coder who feels like you could help people learn how to develop apps?

Does this feel like I’m leading you somewhere with all these questions?

Develop in Swift

Well, I am!

I’ll be running a week of intensive training in Teaching Develop in Swift Online with Apple in the first week of March.

Register (for free!) here: http://s.apple.com/dE5i4p0g8b

We’ll give you a pretty good look at the Develop in Swift curriculum, which is aimed at secondary school to university level students.

They’re a series of free e-books Apple has produced to introduce you to the world of coding using their programming language, Swift. It’s the same coding language folks use to write wildly popular apps for your iPhone, iPad, Mac, Apple Watch, and AppleTV.

Develop in Swift Explorations introduces coding in a broader context. It’s designed to reveal coding to those people who might have never considered all the places we experience code someone else has written. We’ll build some of the projects in this book each day, including the really fun QuestionBot. This will form the basis for a project you can run with your own class.

Develop in Swift Fundamentals is aimed at computer science students (though it’s not limited to them!). It’s like a traditional programming class with 3 more projects to build. We’ll also build these in class during the week. I love that this material teaches you Swift and how to build an app. It’s not just a matter of putting code in the right places, it’s about working with others, coming up with a plan for delivering something.

Develop in Swift Data Collections is the last in the series and covers even more advanced stuff to make your apps look amazing and do incredible stuff.

The Week

We’ll have lectures each day from the material, hands-on workshops on projects from the books in the morning. Some time in the middle to work on projects and get food. Then showcases and group discussions in the afternoon. Each day we’ve got special guests coming to talk to us about design, technical topics, or the books themselves.

It should be a ball, and we’ve got some fun, interactive elements planned for it.

So if you’re a coding teacher, a developer who wants to teach, or a teacher who wants to teach coding, come along with us!

Register (for free!) here: http://s.apple.com/dE5i4p0g8b

There’s still space, but not for much longer…