Sketchware Pro's sources, in Java. Now anyone can contribute to Sketchware Pro.

Overview

Sketchware Pro

GitHub contributors GitHub last commit Discord server stats

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

There are a few things that you should consider before contributing to Sketchware Pro:

  • Make sure that you're capable to mod.
  • Showing off on other contributors is seriously not allowed. We're a community.
  • Tell why exactly you've made a change to something, at best in the commit's extended description.

How to contribute

  • Fork the repository to your GitHub account
  • Make a branch if necessary
  • Clone the forked repository to your local device (optional, you can edit files through GitHub's web interface)
  • Make changes to files
  • (IMPORTANT) Test out those changes
  • Create a pull request in this repository
  • The repository members will review your pull request, and merge it when they are accepted.

Note

This repository can't create a working APK, and you also can't use Android Studio's Run button to test out your changes. This is due to an issue with resource IDs being regenerated, and most classes still use the older ones made during vanilla Sketchware's compilation. In the future, this might be fixed, but it's sadly rather unrealistic.
We might make a tutorial on how to build working APKs, but for now we'll only link the tool we use to build Sketchware Pro: apktool.

Source code map

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

You can also check the mod package that has the majority of contributors' changes.

Contributing

Fork this repository and contribute back using pull requests.

Any contributions, large or small, major features, bug fixes, are welcomed and appreciated, but will be thoroughly reviewed.

What changes we'll (most likely) not accept

Most changes might be UI-related, and we think it's more or less a waste of time. If something design-related gets changed, ideally the whole app must follow the new style too, and that's hard to accomplish, especially for mods. That's why:

  • Major changes to the UI (components which exist in vanilla Sketchware)

are unlikely to be accepted.

Commit message

When you've made changes to one or more files, you have to commit that file. You also need a message for that commit.

You should read these guidelines, or that summarized:

  • Short and detailed
  • Prefix one of these commit types:
    • feat: A feature, possibly improving something already existing
    • fix: A fix, for example of a bug
    • style: Feature and updates related to styling
    • refactor: Refactoring a specific section of the codebase
    • test: Everything related to testing
    • docs: Everything related to documentation
    • chore: 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 at File.java

Thanks for contributing

They help keeping Sketchware Pro alive. Each (helpful) accepted contribution will get noted down in the "About Modders" activity. We'll use your GitHub name and profile picture initially, but they can be changed of course.

Discord

Wanna chat with us, talk about changes or just hang out? We have a Discord server just for that.

Join our Discord server!

Disclaimer

This mod was not meant 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 be a Patreon backer of them, for example. Sadly, all other ways to support them aren't working anymore, so it's the only way available currently. Here's their Patreon page.

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

Comments
  • feat: Add Kotlin support (Android 8+)

    feat: Add Kotlin support (Android 8+)

    This PR adds full Kotlin support (for Android 8+). Kotlin files can be called from Java and vice versa. kotlin-stdlib is added automatically if any Kotlin files are present in the project. .kt files can be added in Java(/Kotlin) Manager, or in the following dirs:

    /.sketchware/mysc/xxx/app/src/main/java /.sketchware/data/xxx/files/java

    All credits go to tyron for porting kotlinc to Android and making this possible 👍

    Please take your time to review & test this thoroughly before merging it, as there might be stuff that I've missed (although I did test it and it seems to be working well.)

    By the way I've already built an APK with this PR on top of the latest v6.4.0 beta 6 release, here you go if you want to build the newer versions on top of it: here


    If not, here are the exact steps to produce the APK above: (I use MT Manager but ApkTool can be used as well)

    1- Download https://github.com/MikeAndrson/kotlinc-android and open it in Android Studio, then Generate a Signed APK. (alternatively you can download https://github.com/tyron12233/CodeAssist/ and copy its build-logic & kotlinc modules to a new project then generate an APK)

    • Extract DEX files from the APK, delete ma.kotlinc_standalone package from the DEX files.

    2- Download the latest release from https://github.com/Sketchware-Pro/Sketchware-Pro/releases. (beta 6 as of writing this)

    3- Delete the kotlin package in classes8.dex in Sketchware Pro's APK from step 2.

    4- Copy all JAR resources from the APK in step 1 to Sketchware Pro's APK from step 2. (including META-INF/ & kotlinManifest.properties !)

    5- Copy the extracted DEX files from the APK in step 1 to Sketchware Pro's APK from step 2. (Remember to rename them first, as to not overwrite any DEX in the target APK)

    -> Below steps are usual stuff but adding them for completeness.

    6- Build Sketchware Pro from source and copy (& overwrite) the classes below to the Sketchware Pro APK in step 2.

    DesignActivity, Dp, ExportProjectActivity, ManageJavaActivity, SrcCodeEditor, yq, KotlinCompilerUtil, KotlinDescription, DiagnosticKt, DiagnosticCollectorKt, KotlinCompilerKt.

    7- Replace "Java" to "Java/Kotlin" & "Import Java files" to "Import Java/Kotlin files" in resources.arsc.

    8- Sign the final APK if you haven't already.

    help wanted feature good first contribution needs attention merged 
    opened by MikeAndrson 29
  • feat, refactor: Added Swipe to Refresh for Local Library Manager, optimizations

    feat, refactor: Added Swipe to Refresh for Local Library Manager, optimizations

    feat: Added Swipe To Refresh Library List feat: Added Alias for libraries as an alternative for naming library Users can add or remove custom Alias for each library. If the name is too big it'll marquee.

    Refactored A lot of code , specially For loops & Type Castings TODO: Look at Line 152. Either make it work or remove it. Also Merge This Reset Function To The changes.

    feature 
    opened by khaled-0 25
  • Weird Block Behavior

    Weird Block Behavior

    Cant really describe this but look at the screenshots

    app version: sorry dont remember i download it from actions tab

    but i have a download link form browser download history https://pipelines.actions.githubusercontent.com/serviceHosts/523ebe16-815d-4d58-b433-717bd98e7c9a/_apis/pipelines/1/runs/371/signedartifactscontent?artifactName=apk-minApi21-debug&urlExpires=2022-10-14T04%3A39%3A08.7236327Z&urlSigningMethod=HMACV2&urlSignature=qZAeNmcsA1uviXzhn%2F2o%2BfXgBeIEScp4%2Bnm%2Bk10bxEU%3D

    this bug also happen in 6.4.0 rc4

    sorry dont have enough storage to record a video

    Screenshot_20221014-144815 Screenshot_20221014-144823 Screenshot_20221014-144826 Screenshot_20221014-144832 Screenshot_20221014-144846 Screenshot_20221014-144910 Screenshot_20221014-144916

    bug fixed 
    opened by oong819 24
  • Dependencies are permanent

    Dependencies are permanent

    Why just lie to us that java command blocks will remove the unused libraries and yet when i run a full compile with App Compat enabled the apk size is 4Mibs. When fully removed classes the apk just retains its size to 4Mibs. The source code indicates the codes are removed but on a full run using apk decompiler I found the removed dependencies still inact.

    Maybe you work hard but I don't appreciate the way you handle this issue with lying.

    ^The app just contains nothing => {4Mibs} 😂

    opened by LilMpesa 22
  • error in Proguard

    error in Proguard

    I was using test build 01, when I updated to test build 04 it gave this error.

    Caused by: com.android.tools.r8.internal.Hc: Class content provided for type descriptor com.coclew.r actually defines class com.coclew.R

    Suppressed: java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.android.tools.r8.internal.Dj: com.android.tools.r8.internal.Dj: com.android.tools.r8.internal.Hc: Class content provided for type descriptor com.coclew.r actually defines class com.coclew.R

    Caused by: java.util.concurrent.ExecutionException: com.android.tools.r8.internal.Dj: com.android.tools.r8.internal.Dj: com.android.tools.r8.internal.Hc: Class content provided for type descriptor com.coclew.r actually defines class com.coclew.R

    Caused by: com.android.tools.r8.internal.Dj: com.android.tools.r8.internal.Dj: com.android.tools.r8.internal.Hc: Class content provided for type descriptor com.coclew.r actually defines class com.coclew.R

    [CIRCULAR REFERENCE:com.android.tools.r8.internal.Hc: Class content provided for type descriptor com.coclew.r actually defines class com.coclew.R]

    Screenshot_20220707-130152_Sketchware Pro Screenshot_20220707-130143_Sketchware Pro Screenshot_20220707-130131_Sketchware Pro Screenshot_20220707-130103_Sketchware Pro

    bug fixed ProGuard 
    opened by AdesonBezerra 20
  • Unknown bug

    Unknown bug

    Screenshot_۲۰۲۲۰۵۱۵-۲۲۴۰۰۰_Sketchware Pro I downloaded the latest action, and when I run the program, it always shows me a message to create a res folder in the local libraries, while in previous versions this message was never displayed to me.

    bug fixed built-in libraries 
    opened by Arashvscode 17
  • About

    About

    I was banned from the Discord server due to a bot that uploaded without my consent. Sorry. Please give me at least the current version of Sketchware pro.

    v6.4.0-rc04-minApi26

    unrelated 
    opened by Jetrom17 16
  • Having some problems in YouTube player😓🥺

    Having some problems in YouTube player😓🥺

    I am having a problem of YouTube player in sketchware from a long time.When I put the youtube player the complied app get crashed I don't know why This is happening but I if am making mistake then please help me to fix It.

    duplicate 
    opened by TechnicalStudioDevelopers 16
  • Add new doc link and update existing ones

    Add new doc link and update existing ones

    added a new doc for admob interstitial ads and updated existing links. All the links of domain docs.sketchware.io replaced with sketchware-docs.vercel.app

    fix 
    opened by NiceSapien 15
  • Unknown error, the norm of not executing the outputted programs

    Unknown error, the norm of not executing the outputted programs

    The result of the last test action, old projects compile well, but do not enter the program. It has been tested on several old projects, but the program does not run. Unknown error. Using in version Min api 26 https://github.com/Sketchware-Pro/Sketchware-Pro/suites/8457008997/artifacts/375345400

    pending question(s) 
    opened by Arashvscode 14
  • Crash during compiling/building apks

    Crash during compiling/building apks

    Dear modders and developers........... Issue while compiling and building any app (apk) on latest version of Sketchware pro v 6.4.0 test build 03. Detailed report: When 'Run' button is clicked, it apk is successfully compiled(java, dx, aligning already done successfully) but crashes as soon it is signing the apk.. Then Sketchware returns to Home Screen where projects are displayed. NO app is being able to be installed. NO ERROR LOG IS DISPLAYED . Please fix this bug ASAP.

    bug fixed 
    opened by 007Shreyas 14
  • feat: Go to moreblock

    feat: Go to moreblock

    this feature brings a fundamental problem to the table (discussed on discord) so I marked it as draft for now, at least till we figure out a reliable solution.

    image

    the icon I got from Flaticon does require attribution btw, like so:

    <a href="https://www.flaticon.com/free-icons/export" title="export icons">Export icons created by Pixel perfect - Flaticon</a>
    
    enhancement feature 
    opened by TotallyNotMike 4
  • Package install error

    Package install error

    I used to create app and sign it from sketchware but when v6.4.0rc-05 miniApi 26 my app is run good but it is not signing I am sketchware sign my apk but the apk is not installing. In old version(v6.4.0rc-04 miniApi 26) the apk is installing with no problem please guide me to fix it or if it is a bug please try to fix it.

    bug 
    opened by TechnicalStudioDevelopers 17
  • Github Snapshot Version - problem

    Github Snapshot Version - problem

    i have download a Snapshot version today..and i got one bugs that should be fixed. IMG_20221228_011656 See in this screenshot. if i select any view from desgin layout (i mean from mobile screen that is our desgin screen) its working fine and selected view got like blue color....its fine.

    but if i select any view from (i mentioned this in that screenshot named as 1) its not selected and even selected views color not changing....

    bug 
    opened by AndroXStudiO 1
Releases(v6.4.0-rc05)
  • v6.4.0-rc05(Nov 5, 2022)

    We've made a few changes to the Logic Editor. Please make sure to make a backup of your entire .sketchware folder before you try this beta out! There might be bugs in the editor, and they could corrupt your projects. Please check in the Issues section before you report any.

    Highlighted features

    • Java 1.9, 10, and 11 compile support! This only works in minApi26 builds though. Thanks to @PranavPurwar for the contribution! (#497)
    • Syntax highlighting for Kotlin and even XML files. (33fe07d38d670b3600b12fc4b96b1c05cdf2fe81)
    • When Sketchware Pro crashes, you can now send the error message to us. It's fully optional though, so please make sure to send them if you want to help us fix bugs! (#551)
    • New features using root access: Auto-installing of projects, and also launching of projects if auto-install is enabled and worked. (#511)
    • You can now use e.g. tools:replace="android:id" in a View's inject property to remove android:id from its XML code. This is a replacement for XML Command Blocks that change tiny things like these. (59fd54afe82f3c65a87dfafae41d664ccfcebb90)

    Other new features/improvements

    • New instructions on setting a custom return type when creating a new More Block. (a8e6ff00ea0d8671bf1e2d73d3cb5eb6051ca647)
    • Kotlinc updated to v1.7.10 (#512)
    • Improved confirmation dialog when about to delete all attributes of an Activity in AndroidManifest Manager. (6f37f36fce31da9162887fbe4991f24f1685742b)
    • Upgrades to r8 v3.3.75. (3d63454e7b4c803aa8926664a12d0e2f8d544fb6)
    • When using the force darken apps Developer setting, the Layout Editor preview won't be darkened too, as it changes how the app really looks. (fde24d6656c69855fe3e24cabd66cb198dc8b1ac)
    • Icons available in the Import Icon activity now get extracted to the cache dir, not /Internal storage/.sketchware/…. This improves performance on Android 11+ devices, and allows easily freeing up space taken by those temporary files. (8f1aec21e3f299ccb17c704f341eff53273878a8)
    • The FAB in the About Sketchware Pro screen got updated to match Discord's new style. (#548)
    • More build progress when exporting a project. (0b51ad5daca1a90be4eb2ece73a274fc2e62ce8b...491b11f838385cb902ca010e70dd7ff72c283277)
    • Kotlin files in Java/Kotlin Manager now have an icon. (29fa222eb3b159c3c58af1a61985e84f93bf070c)
    • Projects can now be exported and then signed using testkey. (7f51eeaafbf679dccae70d94b2db418a7f9a0a6b)
    • An easy way to restore defaults on corrupted parts, such as Custom Blocks. It looks like this, and works by just renaming the broken file:
      image
      This currently works for Custom Repositories in Local library Downloader, Custom Blocks and Palettes in Block Manager, and Block Selector Menu Manager.
    • Injections made in AppCompat Injection Manager are now cached to improve performance. (365c075b51931d364db942cb63666204db2ba050...2f79b56f0aa185409e98b7f27b26b2031886d733)
    • The default android.jar was upgraded to SDK version 33, r02 (Android 13) (6e4ecfa25a9efab0f55db9c73dea1aefbc034871)
    • The version name in Program information is now selectable. (81f9aabe93fe83b719bf1cdda11424ce979cb170)
    • Update to bundletool v1.11.3 (ea2dd4b474e4934e179b3dcc449e7644e7652830)
    • Update to sora-editor v0.17.2 (226c141b7196562c8f3ed95731a00c541ac04ef5)
    • Update of the built-in material library for projects to v1.6.1 (24a268ab8163c3472df75e1b272be8c0954713a6)
    • Update of Firebase Database to v19.3.1 (13ff5cb11f63ca2c7d554192b207546e3a379af4)

    Fixes

    • Projects using e.g. the Google Maps library work again. (71ff222fdfa2956523bd8aeff12ebedab40bfce0, 3b334d3b7bb5697e0b2814105dffbb11f6eb835c, 27a681b55a404fb0e5de4e04bbc9816462be3d5d)
    • Projects don't crash anymore due to SketchLogger if debug logging is enabled. (eca95dd307773b3971986328ba9697640733c1ba)
    • Sometimes even in release builds debug logs were enabled. That has been fixed. (80149e8d2469b1292718fd273d3ebe4bd82eecda)
    • Adding new AdMob ad unit IDs works again. (7a56d715fd3954c9f191e61929718464f71ea01b)
    • In the About Sketchware Pro screen only the latest version in Changelog is marked blue, like it always should have been. (19c48a77a93f85251833592f47519859be0fe023)
    • FragmentAdapter Components can be used in Fragment Activities too now. (637e2e984e1840f49686bacc42ad4e6e4de4ef37)
    • Having a very large compile error won't crash the app anymore. This is a bug even present in v6.3.0 fix1. (5b5616ecd6c796a3209d5a561e728de3d84f630c)
    • Switching apps while generating a source preview of a file in DesignActivity won't crash the app anymore. (427ea71bb5461a3e1f93c8e1c24436006c6db16a)
    • Some ProGuard classpath errors were fixed. (c719999c250e49d45a47c5f997c4c800674f992c, c8a6805d92ea734e1db8d93f37ef223636dc63b1)
    • The known ProGuard bug from v6.4.0-rc04 was fixed. (89f881099107764f6448277248da8aaadc38fa74)
    • The AndroidManifest.xml preview in AndroidManifest Manager contained XML Command Blocks applied more than once sometimes. Fixed now. (d26306356523406184173b1d2b847c34a80a38a4)
    • Some fixes to projects exported to Android Studio. (6badf3159a7e3e672eecc0d3e4b98b30cbad88bb...e30deb6897cf918bdddad124ab91872cfec2a71c)
    • Exporting an AAB won't fail with a StackOverflowException anymore. (1fce06f0f378a3ead5cd80ba129b55037fe2d931)
    • Activities which already have android:exported set by injections in AndroidManifest Manager won't get duplicate android:export properties when targeting SDK version 31 and higher anymore. (ab080ae0e3c00aa436b6bc7b71639d921c370088)
    • Using 1+ Dynamic Link Components and targeting SDK version 31 and higher won't add a duplicate property to AndroidManifest.xml anymore. (ac2c310994221a31c64a1f77cf07ff1f3394ef54)
    • (Internal change) Using a Gradle dependency for SpongyCastle instead of classes converted from DEX files, which fixes some signing issues. (32828fe1892630aa3c9d2676d05ce928c0876640)
    • Custom Components can share names with built-in types and get its imports too, back to how it used to be in v6.3.0 fix1 and earlier. (5b779628a91d9558c5d71ef2049226caeec3a772)
    • Fixes picking a Font sometimes corrupting it, and making the Font unusable in the app. (fe198928ec6c83c83257f11aaea3c3b2a52d02c1)
    • Picking a Sound in Sound Manager won't crash on some Android versions anymore. This is a bug even present in vanilla Sketchware. (cce5e0baca283ddf947d3cc47ecff44b271c7ad1, 74a971c4a899cdcf160f0306993a8e708b7f6891...24e9514fe1ee8a0becaf07c90d3a77616325763e)
    • The Import AdMob details from another project Button works now. This is also a vanilla Sketchware bug. (b09d1366bc99d586373949f36555cd5cf2f8409d)
    • When a Font can't be previewed in the Logic Editor, the app won't crash now. This is another vanilla Sketchware bug. (65d689baac0c9b5847d5ff4024547bc54390de7e)
    • The app won't crash on null Custom Events and Components anymore. (2db1b76b7ac5631b52e6ce15e801aa1a4063d856, 833da0d273674c5a0a0ee138c209b3ba28886690)
    • Component descriptions can be changed using strings.xml again. This is a regression even in v6.3.0 fix1. (0f7bd459140e57c7eb2f2e33bc298b6c790d7c04)
    • Some Custom Block Palette color parsing fixes in Block Manager. (41c399abd7f382358a147acd5b09c1e1a03b3be9)
    • Importing Custom Blocks into a Palette works again. (6bdda25da47ba37cffa35b18814b6567cfb463d3)
    • Hopefully a fix for some files being compressed in AABs even though they shouldn't be, for example sounds. (70e0a87b1c80bf4c0c62ae38735d0019918a13cd)
    • The default project backup filename format now contains two-digit months all the time. (de33fbc945cf20b9d7b9ebbf292f61d22f62ba94)
    • Local library Downloader extracts android.jar if needed automatically, without failing without telling why exactly. (077f93d6e129b0baf942196af946385fce41dd4a)
    • After creating a new Custom Listener, you don't have to restart the app anymore for it to be recognized by Sketchware Pro. (07948c0a5296fa70028ad917d481e1f23db5336f)
    • Disabling a Local library for a project should work in all cases now. (e965df5cf91ceae202cfec9d7c822c41103030d3)
    • The file /Internal storage/.sketchware/data/system/local_library won't be created anymore if opening Local library Manager from Developer Tools. (89225189fcb1eaa696f95f858e499843f020aa58)
    • Having e.g. @color/white as border color in a CircleImageView won't show up the false-positive invalid background color toast anymore. If the color really is invalid though, the app will also tell the CircleImageView's ID. A typo in the error message was also fixed. (28e6c5560b37c1789a82fe9a046f4e20dfabee5d...e380223628bd00a51f05f6d1348a7eff0328378f)
    • The orientation and weightSum property were not are applied in XML to RadioGroups and other Views, even though they were shown in the Properties of the View. This is a bug present even in v6.3.0 fix1, but has now been fixed. (3e9e8105cd85f4503aa29f480e617b98b652828d)
    • The Logcat Reader button in Developer Tools now actually works. (a093a4883d982dd975ab1aaaac18ff21c190f044)
    • SketchApplication.java is not generated anymore if a custom application class is in use. (059d168172b52a2d70aec2ed13397ed1394257ed)
    • SketchLogger.java automatically tries to use the custom application class now. The class needs a static method getContext() returning android.content.Context to work though. (059d168172b52a2d70aec2ed13397ed1394257ed)
    • ProGuard should work on API levels < 24 again. (9c54e2a08c449e7367bdb8040e5ccbfe0103e691)
    • Trying to get data from Firebase Database with ProGuard enabled didn't work out-of-the-box, it crashed at runtime. Now it works, by adding ProGuard rules to built-in library Gson. (96706a5626bc1c8e8fe3369ade2268093ee3f74d)
    • Importing a More Block with a custom return type from Collections won't break its return type anymore. Checking for duplicated names was fixed too. (3e470a51e434ca59d2d66e30cb499b43e7f9aa11...cebf29391a33604c2cb3fd8e580322b96e326e74)
    • Spaces in More Block names are disallowed again, as they cannot be compiled. (c415c26c357943162e223444dd6ee82cf0881997)

    Merged Pull requests

    • feat: Update gradle version to 7.5 by @MartLintz in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/509
    • Upgrade Kotlinc to v1.7.10 by @PranavPurwar in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/512
    • feat: Upgrade Gradle version to 7.5.1 by @ArjunaKumarMohanta in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/530
    • Update proguard to support java 11 by @PranavPurwar in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/516
    • feat: Improve the fab design in About Mod Activity. by @lahds14 in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/548
    • feat: sending crash logs to discord through webhooks by @PranavPurwar in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/551
    • Add new docs and update exisiting ones by @NiceSapien in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/557
    • FEAT: Added ROOT user features: AutoOpening, Slient Installing by @Maks-gaming in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/511
    • Fix some slight issues by @PranavPurwar in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/620

    New Contributors

    • @ArjunaKumarMohanta made their first contribution in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/530
    • @lahds14 made their first contribution in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/548
    • @NiceSapien made their first contribution in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/557
    • @Maks-gaming made their first contribution in https://github.com/Sketchware-Pro/Sketchware-Pro/pull/511

    Full Changelog: https://github.com/Sketchware-Pro/Sketchware-Pro/compare/v6.4.0-rc04...v6.4.0-rc05

    Source code(tar.gz)
    Source code(zip)
    Sketchware.Pro.v6.4.0-rc05-minApi21.apk(84.48 MB)
    Sketchware.Pro.v6.4.0-rc05-minApi26.apk(113.67 MB)
  • v6.4.0-rc04(Jul 5, 2022)

    The most significant new feature of this release is Kotlin code support! PR #247 was finally merged into main. Compiling Kotlin code still needs an Android 8+ device though, so only the -minApi26 version supports Kotlin.

    Features

    • Reading debug logs from projects. A new activity for that, the Logcat Reader, was added, and to start seeing logs there, run your project and open the Logcat Reader in Sketchware Pro. (#257)
    • Symbol pair auto-completion in the code editor can now be turned off. (#402)
    • Upgrade to sora-editor v0.14.0.
    • Upgrade to Iyxan23/zipalign-java:96fd6b30c928015847264b27b0d2dd407f3e8895.
    • Some performance improvements to the DEX merging step. (0f4fc74e98e74595fdcee1423f0b578767038bea)
    • Using resource strings in the text and hint property of Views now works! Set e.g. @string/greeting as text or hint, and the View code will use the resource string, not escape the @. (0f27cac78263556793e4796ed77e19967b9ec336)
    • You can now tweak the filename of SWB backups. (#277)

    Fixes

    • Custom Variables are shown in the Variable Palette and can also be removed again.
    • The aligning APK step was entirely removed after pressing the Run button, as only exports to e.g. Google Play need alignment.
    • The crash after the Aligning APK… step was fixed.
    • Downloading Local libraries won't crash the app anymore. (299d341b1948866f15921fdcf5bc41b29c7a0be2)
    • Fonts added via the Font Manager now actually work at runtime. You'll have to remove old fonts and add them again though.
    • A Custom Block Palette having an invalid color won't crash the app anymore. (a332fcb6be1ae5e2ab3db8b8d2f05a8a397329ab)
    • RadioButtons' checked property now work. (27f874aeaf24811ecddc2b09d151bcc05a7371c2)
    • Built-in Menu Blocks work again! (bba8b3b9dcf2dcc9b0d3dc817fda9b179b3686fd)
    • Zooming in code in e.g. the source code preview, or in general, in dialogs where sora-editor is used will zoom into the code editor content, not the activity content. (c7336e96c2f1a6bae2eec980aa6ac6d38922c4cc)
    • Trying to remove a Variable or List used in another Event will show an error message again.

    New in version with Kotlin support

    • Java Manager was renamed to Java/Kotlin Manager. It can also create and import new Kotlin classes.
    • Obviously, Kotlin compiling!

    Known issues/bugs

    Before reporting any issues, please first check here if they're not already known, or already were reported in another Issue.

    • Java/Kotlin Manager has no icon for Kotlin source code files.
    • There's no Kotlin syntax highlighting available in the code editor.
    • Adding new AdMob units doesn't work. See issue #490 for details on that bug.
    • ProGuard somehow renaming R classes to r.

    Versions

    • If you need a version that supports Android 5 and higher, get v6.4.0-rc04-minApi21. It has no support for AAB output.
    • Otherwise, if you need one with Kotlin support, and also AAB output support, get v6.4.0-rc04-minApi26. As the name says, it only supports Android 8 and higher.
    Source code(tar.gz)
    Source code(zip)
    Sketchware.Pro.v6.4.0-rc04-minApi21.apk(84.54 MB)
    Sketchware.Pro.v6.4.0-rc04-minApi26.apk(111.32 MB)
  • v6.4.0-rc03(May 16, 2022)

    This is just a quick bug fix release with some other minor improvements.

    Features

    • Importing google-services.json downloaded from Firebase Console directly instead of entering Firebase data manually. (a9561f53214ad6b334314150d8d51fdf1d0bf394...40c28f61355e16546dfcd09b87fe849084fe2a54, ab1eb98fb39267356dfc83d68759ef791acd6ccf)

    Fixes

    • Component fields getting duplicated was fixed. (#392, 2bb7b2a9cf355273ed5813670d2fe1fb8ae81274)
    • APK aligning failing due to dynamically linked zipalign binaries was fixed too! (#395, 45cc37f7150c37b7964651c04fa661f55991d7df)
    • Adding a RewardedVideoAd Component is not possible anymore when not having AdMob enabled. (5e898ae02daf26398e8e3ea43c32c17901e77d86)
    • Projects using OneSignal won't have to rely on e.g. XML Command Blocks to work (/ at least get installed) on Android 12 when also targeting that Android version. (661780f639219932035188b1257204e09a32ad28)
    • When exporting a signed AAB or APK, the file gets signed first, then zipaligned. Apparently that's what you should do now. (c7ff8ea131f47eb2288a40488c779653d99a3921)
    • The context menu in Java Manager or App Components shouldn't be weirdly dark with dark text anymore. (ef0b9d0290d98917fa147b27a686f9b395ff2fdf)
    • A typo in the onScrollChanged Event label was fixed at last. (60cdf9a4179caba48e89b397ad2fc444635e3737)
    • Projects using Glide should no longer crash at runtime. (9fb5aaf2b0e039a369e1899a6e22fead0c8cdace)
    • Clearing the app cache will no longer make compiling projects not work anymore until you clear the app's data. (6bc31f7e8d97a896bd1fcff0a0883864837e94d0)
    • Some other compiling assets that need to be extracted will also be extracted to the cache directory, just like e.g. built-in libraries' DEX files. (6bc31f7e8d97a896bd1fcff0a0883864837e94d0)
    • Built-in Extra Blocks can now be overridden using Custom Blocks again. (0929291412b1f6c07865d0af459d728b21a8468d)

    Major thanks

    We'd like to thank @Iyxan23 for implementing zipalign in Java, started by Sketchware Pro needing an alternative method to align ZIP archives. The library can be found here. Thank you for making v6.4.0-rc03's release that quickly possible!

    Full Changelog

    You can find it here: https://github.com/Sketchware-Pro/Sketchware-Pro/compare/v6.4.0-rc02...v6.4.0-rc03

    Source code(tar.gz)
    Source code(zip)
    Sketchware.Pro.v6.4.0-rc03.with.AAB.support.apk(85.95 MB)
    Sketchware.Pro.v6.4.0-rc03.without.AAB.support.apk(83.67 MB)
  • v6.4.0-rc02(May 14, 2022)

    This is another long overdue release.

    Features

    • Built-in library upgrades, as well as finally changing their internal names to mention the actual library name in e.g. dexs.zip. (4030187aa7451baea2eac6cb947dc4934119863c...96298588b6f88d5cbbbe04485110d16b3b5e01eb, e280c1fc9be0ad73017635a38ca947a14a5e1804)
    • Views can now have an orientation of "none", which removes the property android:orientation="…" from Views' XML code entirely, all without any Command Blocks. (775e4d04d9fef873c65efcb91cb5568fe6952061)
    • APKs now get aligned using zipalign before getting signed. (f67c19537cef0da9bf636799ebc6283ba0b96a05)
    • Quick AndroidManifest.xml viewer in AndroidManifest Manager (81813a0541311daa0733ba341fad0deadb5049c3)
    • AndroidManifest Manager will now use the new code editor if not disabled in Mod Settings for App Components. (f1a26461869f7f036e2dc3fcd58915b7ce865ceb)
    • Upgrade of code editor library to upstream sora-editor v0.11.1
    • When exporting an APK / AAB, you can now also decide to not sign the APK / AAB. They will get a different output name, though. (de780e71ce247ad9517a97baf0b0be6a6cb8b188)
    • Sometimes directories or files needed for compiling get deleted. Sketchware Pro now detects and tells you about that. If it's directories, you can create them with a single click. (54f9706d6270cbfa38a6cca1f9f239c64caa3330)
    • The Source Code Viewer got improved. It now uses the new code editor library to show code, and launching it is instant. It generates the project's code asynchronized so that the UI doesn't hang anymore. (ae9e4980a4a0c15fe282d2b0a135b5d9a1ec3f0e)
    • ${applicationId} in AndroidManifest.xml will now automatically get replaced with the project's package name. (91eaff060194e8d7ef1ca68074aa131ca7cb56af)
    • R8 was updated to v3.3.28. (a7c2e4ff95bc70efe2f535c2d859d10b29045853)
    • A new barebones splash screen that only waits until the system's ready to open MainActivity. (390ed037c90c39c6b81b054b9fcb32ea2b4ac771)

    Fixes

    • App doesn't crash without access to storage anymore. (650b78fe28c5cd135868bfbe16b8c5a751065aae)
    • Resource Manager doesn't crash on older Android versions anymore. (f81de8f3e8ab4a78d9c7dbbdad2b07c5e8249f53)
    • BottomNavigationView's onNavigationItemSelected Event works again. (3a4e17e55076b019b0d1430249163e6a2bcd2e0a)
    • Showing a file's source quickly now works for XML files, including changes made via Command Blocks. (80201534b0973efb3fe0397f2077a3ce44a7be5a)
    • You can clear the saved last compile error again. (470074b40c4aed1bbbe5c24d9670a1043740ec88)
    • Projects can have the <queries> tag in AndroidManifest.xml again. (none, since this was caused by me having forgotten to update aapt2's binaries in the APK)
    • The blue "[ViewPager] setFragmentAdapter [FragmentAdapter] TabCount (number)" Block works again. (ef4c3a59f60fa8913804c0cbda2dc61f759d2d45)
    • If a wrong key store password was entered while signing an APK or AAB, you will now be told about that instead of getting an endless progress bar. (78a2a1a0680f4dba5eb2e9bde1030f09038d223c)
    • You can't add more DynamicLink Components if Firebase is not enabled. (0656216dcf80d9364ce890055f184749ddc403e6)
    • The InterstitialAd Block to show an ad doesn't crash projects at runtime anymore if used outside of the onAdLoaded Event / the ad hasn't been loaded yet. (9c95577b491b1b7049496711e8bc3afc4347f1d2)
    • While creating DEX files out of project files, d8 now knows about used libraries' JAR paths. That allows it to desugar default methods into code if targetting older Android versions, and makes for example the exoplayer library work when used. (875e010bcdedf13b9a69325da2b6331e59d817c1)
    • Adding fonts via Font Manager should now work on all Android versions again. Sound Manager following soon. (16b72aa81a53bd776bc816ae6bdaf0801945566d)
    • The built-in library localbroadcastmanager-1.0.0's DEX file now actually contains its classes. (e0bf549c5e953045a349f455d1b5aec1b301e6ea)
    • The RewardedVideoAd Component got updated to work with the updated AdMob built-in library version. You will have to migrate Events to new ones over. (too many, lol)

    Changes that aren't features or fixes

    • Resource Block Selector Menus have been deprecated / removed. Use the Code Editor option instead. (3de650c44b4d1d20b6a02b4f93f416321981a054)
    • The Language Settings menu from the main drawer has been removed as it's not working anymore. (7aee8ce896c47a7a4463317a98f4e2309a35935b)

    Update on Sketchware Pro's build system

    • We've migrated to Android Studio fully now. This means that it's even easier to contribute to Sketchware Pro!
    • Unfortunately, that also forces us to release two APKs from now on. We're releasing an APK with support for Android 5 and higher but without AAB output support, and one with support for only Android 8 and above devices, but because of that, with the AAB output feature. You can check the APK's minimum SDK version (21 for no AAB output support, 26 for with), or the version name to find out which version an APK is.

    Full Changelog

    You can find it here: https://github.com/Sketchware-Pro/Sketchware-Pro/compare/v6.4.0-rc01...v6.4.0-rc02

    Source code(tar.gz)
    Source code(zip)
    Sketchware.Pro.v6.4.0-rc02.with.AAB.support.apk(86.21 MB)
    Sketchware.Pro.v6.4.0-rc02.without.AAB.support.apk(83.92 MB)
  • v6.4.0-rc01(Dec 24, 2021)

    What's new?

    • AdMob Interstitial Ads (yet again). This time, you can start using Events just like with v6.3.0 fix1 and vanilla Sketchware.
    • Quick Previews of XML files! This was surprisingly hard to implement, as far as I can remember. View commit
    • A much better "About Sketchware Pro" screen, containing expandable Sketchware Pro version changelogs, and a work-in-progress tab to view Major Changes made to Sketchware Pro since v6.3.0 fix1.
    • Generated AABs containing generated ProGuard mappings if those were enabled. Useful when uploading your AAB to Google Play. View commit
    • The screen staying turned on while exporting a project. You can now finally leave Sketchware Pro working while resting. View commit
    • Images imported in Resource Manager and Asset Manager show previews now! View commit
    • Improvements to the Compile Log screen: It now has a toolbar, and features display options. Also, the last compile error will open there too, now. View commit
    • Being able to restore multiple SWBs at once. Every backup has its own "restore embedded Local libraries?" dialog, by the way. View commit
    • Backing up projects now backs them up into a folder with the name of the project. Inside that folder, the backups of that project will be stored. View commit
    • An updated version of the built-in Material Design Components / part of AppCompat for projects, which allows your projects to have a Material You style! That is completely optional though, and to apply that, you need to currently mess around with Resource Manager. View commit
    • ProGuard v7.1.1 in Sketchware Pro. Major upgrade is it being able to process Java 11 Local libraries. View commit
    • A ScrollView in Mod Settings and the Tools screen. Some small-display devices will benefit from this. View changes

    What got fixed?

    • Custom Listeners not getting added to generated code. This explains the issues of v6.4.0 Beta 6 with many WebView-using projects, for example.
    • Exporting a project to Android Studio failing with "file not found" errors. What a difference simple "folder exists?" checks can make. View commit
    • Some devices having issues extracting built-in libraries, which explains the "…/res: No such file or directory." errors when projects are at AAPT2. View commit
    • Views, such as TextInputLayout, in Lists' Custom Views (e.g. RecyclerView), causing errors at runtime. This needed a patch to vanilla Sketchware's default generated Adapter code. View commit
    • AndroidManifest.xml injections after the default AppTheme not getting applied. View commit
    • Using multiple FragmentAdapter Components in a single Activity should be fine now, and its corresponding Block got changed too. Make sure to replace the current one with the updated one, or else no Adapter will be set. View commit
    • SearchView's onQueryText* Events should not throw compile errors anymore. View commit
    • AdMob AdViews not properly working. Note that now they show test ads when running your project, and only real ads when you export your project, just like Interstitial Ads!
    • Some AABs containing invalidly compressed files, most often videos or sounds in assets / res/raw-[config]. View commit
    • Exported AABs not containing non-class files from Local and built-in Libraries' JARs. Now they do. View commit

    What else got changed?

    • The app's icon is now Christmas-styled. 🎄
    • As announced, Direct Source Code Editor got removed. See this message for the announcement again: image View commit
    • /Internal storage/.sketchware/debug.txt now contains information about the used Sketchware Pro version. That'll probably be useful for saving time while investigating issues. View commit
    • DEX files don't get merged into just few ones anymore starting with this version when just running the project, not exporting it. That'll save some precious time of yours. View commit

    Full Changelog: https://github.com/Sketchware-Pro/Sketchware-Pro/compare/v6.4.0-beta.6...v6.4.0-rc01

    Source code(tar.gz)
    Source code(zip)
    Sketchware.Pro.v6.4.0-rc01.apk(78.84 MB)
  • v6.4.0-beta.6(Sep 26, 2021)

    This is the first Sketchware Pro version released at its GitHub repository!

    What's new?

    • (Minor) The default generated FileUtil.java file now contains the method copyDir(String, String).
    • Cached Custom Components, which make Sketchware Pro work much smoother. From now on, you have to open Component manager to refresh Custom Components though.
    • More than a single decimal in project's version name, version name and extra is now a . (If using advanced version control dialog)
    • The green "add source directly" block is now available in the default Import Event if you open the Operator palette.
    • Some improvements to exporting a project to Android Studio: It now includes imported Java files, resources, assets, and native libraries.
    • Improvements to the Local library downloader, now you can have custom repositories it looks up. The default one will automatically get generated during the first time at /Internal storage/.sketchware/libs/repositories.json.
    • (Might be removed later) Adding tools:remove="orientation" into any View's inject attribute will remove the android:orientation attribute of it.
    • (WIP) Built-in AdMob fixes! You'll have to completely rework ads, but at least they kind of work now. You will need all 4 new blocks in exactly this order: h Support for onAdShown and onAdClosed is coming soon. There's still a catch: You need to use an XML Command Block in AndroidManifest.xml to set your correct app ID there. Click here for more details on what exactly to replace.

    What's been fixed?

    • The app complaining for no reason about any List in Logic Editor
    • Merging DEX files while building a project taking ages
    • Generated AABs not including Native libraries
    • General compiling failing on some devices due to the removal of the android:largeHeap="true" attribute in Sketchware Pro's AndroidManifest.xml
    Source code(tar.gz)
    Source code(zip)
    Sketchware.Pro.v6.4.0.Beta.6.apk(66.64 MB)
Owner
Sketchware Pro
Sketchware Pro
The loader for mods under Fabric. It provides mod loading facilities and useful abstractions for other mods to use, which is compatible with spigot now

Silk The loader for mods under Fabric. It provides mod loading facilities and useful abstractions for other mods to use, which is compatible with spig

null 1 Oct 1, 2022
Brings back Christmas ender chest textures, but now with a unique texture to avoid confusion.

This mod adds a Christmas texture for the ender chest, correcting a wrongdoing done by Mojang in 22w03a. Should work in any version 1.18.1 or newer.

null 4 Nov 11, 2022
Water logistics mod, now on Fabric.

Little Logistics: Fabric Edition Download There are no official downloads at this point. From time to time you may find builds floating arround on the

Luca 1 Jul 10, 2022
A simple, lightweight, safe way to show your user's Spotify now playing in game

Spigotify A simple, lightweight, safe way to show your user's Spotify now playing in game! Installation Install PlaceholderAPI. Install Spigotify Add

Mufin 2 Mar 14, 2022
A fairly Simple Game made in Java,You can adopt Pets, name them, and take care of them for XpPoints and level up!

Introducing PetGame! A simple console based game made by @denzven in Java ☕ About the Game PetGame is my first big project in Java, the rules are simp

Denzven 11 Jun 7, 2022
THIS WAS INSANE. CAN WE BEAT MINECRAFT

Fabric Example Mod Setup For setup instructions please see the fabric wiki page that relates to the IDE that you are using. License This template is a

Ally 3 Aug 24, 2021
Enchanted Golden Apple finder for blockgame (can be modified)

[ EgapFinder ] Enchanted Golden Apple finder for Minecraft (can be modified) [ info ] I made this public because I dont play blockgame anymore if you

NudTix 11 Dec 2, 2022
using LWJGL to make a mini minecraft (mac also can run)

MineCraft Mini Features MineCraft Lite in Java and OpenGL Physics simulation, water simulation Perlin noise algorithm to generate maps Directional flo

null 1 Jan 4, 2022
Minecraft Mod: Torches made from glowing squids that can be used underwater!

Aquatic Torches No more dark oceans Ever wondered what to do with glowing ink sacs aside from glowing item frames? Aquatic Torches adds waterproof tor

Marius 2 Jan 9, 2022
Adds backpack that can be access from inventory.

Inventory Backpack Mod <-- Video About This mod adds backpacks that can be accessed from inventory. Origins It's based on forge mod Quark Oddities, or

Jakub Trzeciak 4 Jul 16, 2022
A tool that can calculate the average solution set for a first guess in the game of Wordle

word-distances A tool that can calculate the average solution set for a first guess in the game of Wordle. Yes, the name isn't great -- I initially ha

null 1 May 2, 2022
Golden Axe (1989) game implemented in java using only standard libraries (Java 2D, Swing, AWT & Java Sound API)

Golden Axe (1989) game implemented in java using only standard libraries (Java 2D, Swing, AWT & Java Sound API), so no external libraries required. Video: https://youtu.be/uevIVLNhQqs

Leo 101 Jul 21, 2022
It is a simple java terminal game. I built it in order to practice my code skills that I obtained while I was learning Java.

Java-terminal-game It is a simple java terminal game. I built it in order to practice my code skills that I obtained while I was learning Java. The ga

Baistan Tashkulov 0 Jan 20, 2022
A 2d Java physics engine, native java port of the C++ physics engines Box2D and LiquidFun

jbox2d Please see the project's BountySource page to vote on issues that matter to you. Commenting/voting on issues helps me prioritize the small amou

jbox2d 1k Dec 27, 2022
A Java Game Engine created in Java with LWJGL!

?? Suffler Engine Suffler Game Engine is an engine created in java using OpenGL to Graphics. Currently being developed at Eclipse, and Visual Studio C

Suffler Engine 2 Jul 23, 2022
Desktop/Android/HTML5/iOS Java game development framework

Cross-platform Game Development Framework libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux

libgdx 20.9k Jan 1, 2023
A complete 3D game development suite written purely in Java.

jMonkeyEngine jMonkeyEngine is a 3-D game engine for adventurous Java developers. It’s open-source, cross-platform, and cutting-edge. 3.2.4 is the lat

jMonkeyEngine 3.3k Dec 31, 2022
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.

LWJGL - Lightweight Java Game Library 3 LWJGL (https://www.lwjgl.org) is a Java library that enables cross-platform access to popular native APIs usef

Lightweight Java Game Library 4k Dec 29, 2022