Resume of Louis CAD, made with Jetpack Compose. Supports the Web, Desktop, and Android.

Overview

ResumeComposition

What

This project is the source code of the resume/CV of Louis CAD.

The latest PDF export is available here, it is ready to print.

Here's a blurry picture that you can click to see the crisp PDF document:

You can also see the WEB version at resume.louiscad.com.

It is built with Kotlin, Compose for Web, and also supports Jetpack Compose for Android, which shares code with a Desktop version.

To be more specific, the main Resume is made with Compose for Web because it can easily be tweaked and printed via the browser (including PDF export), and allows clickable links. This version is designed to fit on an ISO A4 sheet of paper.

The Android app has a version that doesn't display correctly on a typical mobile device, because it's designed to fill an ISO A3 sheet of paper. Printing and PDF exporting functionality for the Android app is in another project at the moment. It will be integrated in this one in the coming days (should be done by August 2021).

The Desktop app shares the code with the Android app. It allows previewing what the Android app would generate on a bigger screen. That said, some text is currently cut-off on laptop screens because ISO A3, the size it's been designed for, is much bigger. This target was more an experiment, a successful one, about code sharing rather than a goal to make a proper Desktop app for my Resume.

Why

I made my Resume with Jetpack Compose for multiple reasons:

  1. I didn't want it to look boring and like many other resumes, so using Google Docs or alike was discarded.
  2. I didn't want to have to tweak the layout manually in Affinity Designer or Sketch, per (sub-)pixel, every time I'd change the content.
  3. I wanted to get more experience with Jetpack Compose besides a few screens and embedded views I made at work with it.
  4. I wanted to learn more about Compose for Web, and learn web development again, after putting these skills I had mostly aside for about 6 years.
  5. I wanted to see how I could share code with a Web, Android and JVM app that also happened to use Jetpack Compose by Google and JetBrains.

How

If you just want to see the latest Resume, it is here in PDF.

Exporting to PDF or printing the WEB version

When printing the WEB version or exporting it to PDF, to get the best rendering that fits nicely on one page, make sure you use Google Chrome, or a Chromium based browser (like Edge by Microsoft).

Firefox will have a slightly different rendering that might clash with printer margins and will print an extra blank page by default.

Safari will not print or export correctly because it'll add extra margins that cannot be disabled (or hardly, maybe deep in the options).

The WEB version is pre-built and available at resume.louiscad.com. You can also build it yourself by following the instructions below.

Building the project

Warning: If you want to explore the project in an IDE, it's best to use IntelliJ IDEA 2021.2 or later. It might work in recent Android Studio versions as well, but it hasn't been tested there.

WEB version

Development mode

In development mode (no minification or deep dead code elimination), there are two ways to run the project:

If you just want to build the webpage, run the following command:

./gradlew :app:jsBrowserDevelopmentExecutableDistribution

Once the command completes, you'll find the resulting html and js files in the app/build/developmentExecutable directory. You can simply open the index.html file in a WEB browser like Google Chrome or Mozilla Firefox to see the result.

If you want to have Gradle automatically rebuild on save, and refresh the page on compilation success, you can run the following command instead:

./gradlew --continuous :app:jsBrowserRun

It will wait for changes and build repeatedly until you stop it manually.

Production mode

As for development mode, there are two ways to run the production version of the project. The production mode will take a bit longer to compile because it'll try to find dead/unused code and remove it from the output to save storage and bandwidth (if published online). This step is called Dead Code Elimination (DCE). On this project, the output size has been observed to be 10 times smaller with DCE (from 6.8 MB down to under 0.5 MB).

If you just want to build the webpage, run the following command:

./gradlew :app:jsBrowserDistribution

Once the command completes, you'll find the resulting html and js files in the app/build/distributions directory. You can simply open the index.html file in a WEB browser like Google Chrome or Mozilla Firefox to see the result. The entire content of the directory can then be moved to a place that will serve the static files.

If you want to have Gradle automatically rebuild on save, and refresh the page on compilation success, you can run the following command instead:

./gradlew --continuous :app:jsBrowserProductionRun

It will wait for changes and build (with DCE) repeatedly until you stop it manually.

Android version

You can run the app module like any other Android app, but please, keep in mind that printing and PDF exporting is not integrated in the project in this repository yet, so you won't be able to see it correctly at all.

Desktop version

This version is not complete and doesn't layout properly on all screen sizes (not responsive yet), but can still be run like any other Compose for Desktop app.

License

All rights reserved for Louis Cognault Ayeva Derman.

You can take inspiration from this project and take some code so long as:

  1. You make sure your Resume doesn't look like mine (content, colors).
  2. You don't make a Resume generator service with it without my approval (ask via email).

Feel free to ask via email if you're unsure if you'd violate this license.

You might also like...
Alien invasion πŸ‘Ύ gane is back! this time specially on Jetpack Compose Desktop πŸš€, using Canvas API 🎨
Alien invasion πŸ‘Ύ gane is back! this time specially on Jetpack Compose Desktop πŸš€, using Canvas API 🎨

Compose Space-Invaders πŸ‘Ύ Alien invasion πŸ‘Ύ is back! this time specially on Jetpack Compose Desktop πŸš€ , using Canvas API 🎨 Featured on Compose Diges

Jetpack Compose Desktop Galaxy Example
Jetpack Compose Desktop Galaxy Example

Compose-StarWars Compose-StarWar 3D Space particle System build using Canvas API Jetpack Compose Desktop πŸš€ How to Run From gradle tab from right-hand

A Slack demo app for desktop using Jetpack Compose UI toolkit
A Slack demo app for desktop using Jetpack Compose UI toolkit

ComposeSlackDesktop A Slack demo app for desktop using Jetpack Compose UI toolkit Demo Jetpack Compose Jetpack Compose is Android’s modern toolkit (no

Spotify Demo Desktop app using Jetpack compose
Spotify Demo Desktop app using Jetpack compose

Compose Spotify Desktop Declarative UI A Spotify demo app for desktop using Jetpack Compose UI toolkit Demo Home Search & Detail Jetpack Compose Jetpa

Schedule sample to play with Jetpack Compose Desktop
Schedule sample to play with Jetpack Compose Desktop

Schedule sample to play with Jetpack Compose Desktop

OTPView is a view made in Jetpack compose. It is highly customisable and can be used to show OTP view with different length and shapes.
OTPView is a view made in Jetpack compose. It is highly customisable and can be used to show OTP view with different length and shapes.

OTPView OTPView is a highly costumizable OTP view made in the Jetpack compose UI. Usage: CircleOtpView is a sample composable that calls the OtpView w

Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Mobile Banking Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cach

New style for app design and Movies App with Movies API JetMaxMovies made in Jetpack Compose.πŸ˜‰πŸ˜Ž
New style for app design and Movies App with Movies API JetMaxMovies made in Jetpack Compose.πŸ˜‰πŸ˜Ž

JetMaxMovie New style for app design and Movies App with Movies API JetMaxMovies made in Jetpack Compose. πŸ˜‰ 😎 (Navigation Compose,Dagger-Hilt, Mater

Releases(2021-10-19)
Owner
Louis CAD
Kotlin GDE & Android Dev. Efficiency over performance. Recumbent bike commuter, velomobile enthusiast. Do what's hard and your life will be easy… [πŸ”
Louis CAD
πŸ’» A cross-platform desktop application to identify libraries used inside an android application. Made possible by Compose Desktop ⚑

?? stackzy A desktop app to analyse APK. Built using Compose desktop ✨ Demo Watch demo ??️ Usage Show usage ?? Install Platform Download Status Linux

theapache64 876 Dec 24, 2022
A desktop code editor app using Jetpack Compose for Desktop and IntelliJ Platform

Compose Code Editor A desktop code editor app using Jetpack Compose for Desktop and IntelliJ Platform. Project Structure The code is contained in the

Alex 73 Dec 19, 2022
Test-compose-for-desktop - Hello World in Compose for Desktop

Testing Run from command line: ./gradlew run Regular build: ./gradlew packageUb

Sebastian 3 Sep 20, 2022
Snake-compose-for-desktop - Snake Game - implemented using Compose for Desktop

A Snake game, built with Compose for Desktop snake-compose-for-desktop is my imp

gnu 5 Feb 17, 2022
Exercising Compose for Desktop and Compose for Web (Canvas)

Compose Counting Grid A simple application to check Compose for Desktop and Compose for Web (Canvas) drawing speeds when drawing grids (or tables) wit

null 6 Nov 11, 2022
Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop πŸš€, using Canvas API 🎨

?? ?? ?? Compose flocking Ants(boids) ?? ?? ?? Jetpack compose Boids | Flocking Insect. bird or Fish simulation using Jetpack Compose Desktop ?? , usi

Chetan Gupta 38 Sep 25, 2022
A flexible theme provider for Jetpack Compose. Supports dynamic theme changes and saving theme preference.

JetTheme JetTheme is a flexible theme provider for Jetpack Compose. Change the theme and recompose the UI dynamically. Save theme preference to local

Mao Yufeng 48 Oct 19, 2022
Compose Curved-Scroll is an Android Jetpack Compose library made with ❀️

Compose-Curved-Scroll-library Compose Curved-Scroll is an Android Jetpack Compos

mohamed tamer 23 Aug 24, 2022
A Sudoku game for Android & Desktop written with Jetpack Compose Multiplatform

?? Compose Arcade A sample Kotlin Multiplatform Compose Sudoku app for Android & Desktop. Most code is shared between Android & Desktop using Kotlin M

Aaron Oertel 42 Dec 30, 2022
Welcome Fruit Ninja πŸ₯ on Jetpack Compose Desktop πŸš€, using Canvas API 🎨

Compose-Fruit-Ninja ?? Welcome Fruit Ninja on Jetpack Compose Desktop ?? , using Canvas API ?? Featured on jetc-dev How to Run From gradle tab from ri

Chetan Gupta 54 Nov 2, 2022