Skip to content

Sketchware-Pro/Sketchware-Pro

Repository files navigation

Sketchware Pro

GitHub contributors GitHub last commit Discord server stats Total downloads Repository Size

Welcome to Sketchware Pro! Here you'll find the source code of many classes in Sketchware Pro and, most importantly, the place to contribute to Sketchware Pro.

Building the App

To build the app, you must use Gradle. It's highly recommended to use Android Studio for the best experience.

There are two build variants with different features:

  • minApi26: This variant supports exporting AABs from projects and compiling Java 1.8, 1.9, 10, and 11 code. However, it only works on Android 8.0 (O) and above.
  • minApi21: This variant can't produce AABs from projects and can only compile Java 1.7 code, but it supports Android 5 and above.

To select the appropriate build variant in Android Studio, use the Build Variants tab or use the appropriate Gradle build command.

Source Code Map

Class Role
a.a.a.ProjectBuilder Helper for compiling an entire project
a.a.a.Ix Responsible for generating AndroidManifest.xml
a.a.a.Jx Generates source code of activities
a.a.a.Lx Generates source code of components, such as listeners, etc.
a.a.a.Ox Responsible for generating XML files of layouts
a.a.a.qq Registry of built-in libraries' dependencies
a.a.a.tq Responsible for the compiling dialog's quizzes
a.a.a.yq Organizes Sketchware projects' file paths

Tip

You can also check the mod package, which contains the majority of contributors' changes.

Contributing

If you'd like to contribute to Sketchware Pro, follow these steps:

  1. Fork this repository.
  2. Make changes in your forked repository.
  3. Test out those changes.
  4. Create a pull request in this repository.
  5. Your pull request will be reviewed by the repository members and merged if accepted.

We welcome contributions of any size, whether they are major features or bug fixes, but please note that all contributions will be thoroughly reviewed.

Commit Message

When you make changes to one or more files, you need to commit those changes with a commit message. Here are some guidelines:

  • Keep the commit message short and detailed.
  • Use one of these commit types as a prefix:
    • feat: for a feature, possibly improving something already existing.
    • fix: for a fix, such as a bug fix.
    • style: for features and updates related to styling.
    • refactor: for refactoring a specific section of the codebase.
    • test: for everything related to testing.
    • docs: for everything related to documentation.
    • chore: for code maintenance (you can also use emojis to represent commit types).

Examples:

  • feat: Speed up compiling with new technique
  • fix: Fix crash during launch on certain phones
  • refactor: Reformat code in File.java

Important

If you want to add new features that don't require editing other packages other than pro.sketchware, make your changes in pro.sketchware package, and respect the directories and files structure and names. Also, even though the project compiles just fine with Kotlin classes that you might add, try to make your changes or additions in Java, not Kotlin unless it is more than necessary.

Thanks for Contributing

Thank you for contributing to Sketchware Pro! Your contributions help keep Sketchware Pro alive. Each accepted contribution will be noted down in the "About Team" activity. We'll use your GitHub name and profile picture initially, but they can be changed, of course.

Discord

Want to chat with us, discuss changes, or just hang out? We have a Discord server just for that.

Join our Discord server!

Disclaimer

This mod was not created for any harmful purposes, such as harming Sketchware; quite the opposite, actually. It was made to keep Sketchware alive by the community for the community. Please use it at your own discretion and consider becoming a Patreon backer to support the developers. Unfortunately, other ways to support them are not working anymore, so Patreon is the only available option currently. You can find their Patreon page here.

We do NOT permit publishing Sketchware Pro as it is, or with modifications, on Play Store or on any other app store. Keep in mind that this project is still a mod. Unauthorized modding of apps is considered illegal and we discourage such behavior.

We love Sketchware very much and are grateful to Sketchware's developers for creating such an amazing app. However, we haven't received updates for a long time. That's why we decided to keep Sketchware alive by creating this mod, and it's completely free. We don't demand any money :)