Week 14. Interface and Application Programming#
- Authors :
Asako Okazaki
,Kai Naito
,Kae Nagano
,Georg Tremmel
- Created :
5/2/2019
, Last Update:5/4/2023
Assignments#
Individual Assignments
- Write an application that interfaces a user with input and/or output device(s) on a board that you made.
Group assignment
- compare as many tool options as possible
- Document your work on the group work page and reflect on your individual page what you learned.
Learning Outcomes
- Interpret and implement design and programming protocols to create a Graphic User Interface (GUI).
Have you?
- Linked to the group assignment page
- Documented your process
- Explained the UI that you made and how you did it
- Outlined problems and how you fixed them
- Included original code (or a screenshot of the app code if that’s not possible)
- Included a ‘hero shot/video’ of your application running with your board
FAQs
-
How do I compare tool options in the group assignment? Answer: Describe the typical use cases and workflows of the tools you and your group tried.
-
Do we have to interface to a board for the group assignment? Answer: No, but you need to learn how to create user interfaces.
-
Is it ok to use Command Line Interface (CLI)? Answer: Yes, as long as it’s GUI-like.
Advices from Instructors#
Tip
Make something that is part of your Final Project. It is tempting to try something new and shiny and exciting - but keep in mind that this should help your Final Project along.
This week will be eiter very challenging or very easy for you - depending on your programming experience. Even if you know programming very well, there are learning challenging, like picking up a new programming language or working with an app/framework that is new to you.
Group Assignments#
Try out and compare different development environments, frameworks, GUIs, and languages.
Tip
Set yourself a time-limit within which you try and compare. It can be exciting to try out as many as possible, but keep in mind that this is As a group you should try out at least one environment, framework, GUI, language for each student.
Try Serial Communication in:
- Processing
- Max
- PD
- TouchDesigner
Processing can make rudimentary GUIs, it’s language is based on Java. Max, PD and TouchDesigner are both of a Visual Programming Language. Full disclosure: I (Georg) started programming with Max - actually with HyperCard - but that’s another story! The advantage of Visual Programming Languages is, that the GUI is already part of the interface - no need to stuggle and create bespoke interfaces. If you are new and/or not so confident about programming, I suggest to used a Visual Programming Language.
If you wish, you can go down the full Application Development route with XCode, Swift/Objective-C and Interface Builder. Only do that, if you already know what you are doing. (XCode is mac-centric, I am sure something similar exists on other platforms.)
You can make a GUI in Python, but it’s not really what Python was designed for. Your experience - especially if you are new to programming - will not be great.
-
Individual Assignments
- Connect it to the board you made at the week of Input devices or Output devices, and control it from some user interface or display the values graphically.
Processing and Python are the standard.
- 今週は、Input device、Output devicesの週に作った基板と繋いで、なんらかのユーザーインターフェイスから制御したり、値をグラフィカルに表示する。*Processing, Pythonが定番です。
- Connect it to the board you made at the week of Input devices or Output devices, and control it from some user interface or display the values graphically.
Processing and Python are the standard.
-
アドバイス
- It’s a bit of a challenge, but using a web browser is useful for IoT .
- ちょっと敷居は高いですが、webブラウザを使う方法はIoTデバイスなどで有用です。
- It would be a good idea to make this week relatively quick and move on with FinalProject.
- この週は比較的手早く済ませてFinalProjectをすすめると良いと思います。
- Let’s keep the FinalProject page updated!
- FinalProjectのページも更新していきましょう!
- It’s a bit of a challenge, but using a web browser is useful for IoT .
Agenda#
Class review#
Individual Assignment#
- ハードウェアと通信可能なプログラミング環境の例
- processing
- Python
- Blynk
- JavaScript(node.js)