/KotLearn

A learning and reference project for Kotlin programming language

MIT LicenseMIT

KotLearn

A learning and reference project for Kotlin programming language

I'm creating this to learn the language, API's, and tools for development with Kotlin. Initially I will try to do this all within IntelliJ Idea CE. If the make system drives me too insane, I'll try switching to cmdline or VSCode or something else (I always seem to encounter cryptic Gradle version compatibility errors when experimenting in Idea).

I wish I could study a good book on this, but the Kotlin authors seem to be holding back for the K2 release (or maybe there just aren't many, IDK).

Some basic functions (which will require multiple runnable targets):

  • Console app (hello world)
  • Language essentials: datatypes, iterators, conditionals, namespaces/modules, imports, file I/O, strings, collections, tuples, datafields, OOP, annotations, overloads, lambdas and such
  • TDI sample
  • Remote services - REST, gRPC, and such
  • Logging sample
  • Local exceptions - local
  • Exceptions - across methods
  • Remote exceptions - in RPC and such
  • network experiments - ping, ftp, socket I/O, etc
  • authentication and authorization
  • simple encryption
  • SQLite API example
  • SQLite ORM example
  • PostgreSQL ORM example
  • 2-D graphics drawing example
  • Font-based 2D tiled game example
  • Tic-tac-toe example
  • CRUD example (probably vs SQLite)
  • Emulator example (standalone, unsophisticated, perhaps 8080, 6502, Z80 or 6800)
  • PDF Creation
  • Prime numbers benchmark
  • XMas tree fractal 2d graphics experiment
  • Popup modal dialog
  • app themes
  • listview experiments
  • treeview experiments
  • gridview experiments
  • datagridview experiments
  • regex experiments
  • parsing experiment
  • rich editor experiment
  • rich editor with syntax highlighting experiment
  • coroutines/threading/async experiments

Potential advanced functions:

  • Native versions of above
  • JS versions of above
  • WASM versions of above
  • Unix versions of above
  • Mac versions of above
  • Mobile versions of above
  • Gui desktop app with SPA-like shell page and menu-based navigation between different shell content views
  • JetPack Compose app with multiple windows and views, and a MVVM implementation pattern
  • tiny basic simulator
  • Full GUI with menu, toolbar, statusbar, client area
  • Portal GUI with grid of (sizable? positionable? dockable?) applet views