-
Notifications
You must be signed in to change notification settings - Fork 19
Development Setup
Pedro Monteiro edited this page Nov 27, 2025
·
3 revisions
Welcome! This guide will walk you through setting up uni on your local machine.
This is the standard and recommended way to get up and running.
This is a Flutter project, so you'll need the Flutter SDK. We recommended installing it through VS Code.
- Install VS Code: Make sure you have Visual Studio Code installed on your machine.
-
Install Flutter Extension:
- Open VS Code and go to the Extensions tab.
- Search for
Flutterand install the official extension by Dart Code. - After it installs, it will likely prompt you to also install the Dart extension. Please do.
-
Install Flutter SDK:
- Open the VS Code Command Palette (Ctrl+Shift+P or Cmd+Shift+P).
- Type Flutter: New Project.
- The extension will check if you have the Flutter SDK. If not, it will show a notification prompt with a button to "Download SDK". Click it.
- It will ask you where to save the SDK. Choose a location (like C:\flutter or ~/.local/opt/flutter).
- The extension will download and set up the SDK for you.
-
Add Flutter to PATH:
- Once installed, you need to add Flutter to your system's environment path.
- Find the
binfolder inside where you just installed the SDK (e.g.,C:\flutter\bin). - Follow this guide to add that folder to your PATH.
-
Verify with flutter doctor:
- Close and re-open your terminal or VS Code.
- Run
flutter doctor -v. It will check your setup and tell you what other dependencies you might be missing. Fix any issues it reports.
Next, you need the tools for the specific platform(s) you want to build for:
-
Android:
- Install Android Studio (we recommend installing it through the JetBrains Toolbox).
- Open Android Studio, go through the setup wizard, and from the "More Actions" menu on the welcome screen, open the SDK Manager.
- Make sure you have at least one Android SDK Platform installed.
- Go to the "SDK Tools" tab and make sure "Android SDK Build-Tools" and "Android SDK Platform-Tools" are installed.
- Run
flutter doctoragain in your terminal. It will check if everything is okay. - It will likely tell you to accept the Android licenses. Run the command it gives you, which is typically
flutter doctor --android-licenses, and pressyto accept all of them.
-
iOS:
- Install Xcode
- Set up Xcode command-line tools by running the following command:
sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'- Agree to Xcode licenses:
sudo xcodebuild -license
- Download iOS platform support and the latest iOS Simulator runtimes:
xcodebuild -downloadPlatform iOS
- If you are developing on an Apple Silicon processor, install Rosetta 2:
sudo softwareupdate --install-rosetta --agree-to-license
- Install CocoaPods
Once your environment is ready (from the steps above), you can set up the project itself.
-
Clone the Repository
git clone git@github.com:NIAEFEUP/uni.git cd uni -
Get Dependencies
All our app code lives in packages/uni_app. This is where you'll do most of your work.
cd packages/uni_app flutter pub get -
Install iOS Dependencies (macOS only)
If you're on a Mac and want to build for iOS, you need to install the CocoaPods dependencies:
cd ios pod install cd ..
That's it! You should now be able to run the app. Head over to the Running the App guide for the next steps.
If you ran into any trouble, check the Common Setup Issues page.
If you're on Linux or macOS and familiar with Nix, you can use it to get a complete, reproducible development environment automatically.
Steps:
- Install Nix: If you don't have it, follow the official Nix installation guide.
-
Enter the Shell: From the root of the repository, just run
nix develop. This command will download all the dependencies defined in flake.nix (this might take a while the first time) and drop you into a new shell. Inside this shell, you have the correct flutter version and all other tools. - Continue to Project Setup: You can now skip the "Main Setup" and go directly to the Project Setup section to clone the repo and get dependencies.