Some project ideas
I've been doing some brainstorming of my own. Here are some thoughts of types of projects you might find interesting.
Mobile apps
The big new learning here would be how to write an iOS or Android app at all. So identifying a product that is computationally reasonably straightforward would help balance out the job of learning the mobile development.
Here are some possibilities.
- a fairly simple game, like Minesweeper or Tetris or Asteroids or...
- a tool for retrieving or monitoring device information, like network traffic or app activity, etc.
- a tool for aggregating location data from the phone, so you could do something along the lines of Map My Walk or something else with that data
- ...
Web apps
If you wanted to learn modern professional web app tools, you could do something along the lines of a CS257 project, but ramped up a bit in sophistication.
- something using React or node.js (or both) or Java on the server side
- something with account creation and login systems, possibly including 2-factor authentication with SMS or email codes or links for validation—for example, a game or a discussion forum
- a clone of phpmyadmin, which is just a web-based database client (for mysql or postgres or whatever)
- ...
Command-line utilities
Could be for Unix contexts, but if you're into Windows, this could be developed for cmd or powershell.
- a compression utility along the lines of zip/unzip, gzip/gunzip, 7z, etc.
- a small web server (obviously not full-featured, but able to serve static files at least)
- a small web client, like curl or wget
- some portion of the many, many sub-features of openssl
- standard search tools like find or grep
- a text editor like nano or vim
- a diff visualizer (could be terminal-only, could be GUI app)
- a git log visualizer (could be terminal-only, could be GUI app)
- ...
Desktop apps
These ideas could also be phone or tablet apps if you prefer.
- a simple drawing or diagramming app like MS Paint
- a simple photo editor (cropping, various kinds of filters, etc.)
- a game
- a bitcoin blockchain analyzer/visualizer (even though I hesitate to encourage anybody to spend time thinking about bitcoin)
- ...