Stats

2
Projects
66
Devlogs
43
Votes
2
Ships

Coding Time

All Time: 139h 52m
Today: 0h 0m

Member Since

June 16, 2025

Badges

1
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

2
CrossCode (Build iPhone apps on Windows and Linux!)
58 devlogs • 3 months ago
Portfolio - nabdev
8 devlogs • 3 months ago

Activity

Got everything ready for release and made a new demo video!

Update attachment
Earned sticker
  • Added screenshots to the app!
  • Fixed some UI bugs
  • Fixed bugs when switching projects without going back to the welcome page
Update attachment

I forgot to add one of the projects I made while debugging and testing isideload (a core component of this app) so this devlog is accounting for that time. I was originally going to publish it as a separate app and I might still do but I never did. So I guess you get a glimpse of my developer tools I used for testing!

Update attachment
Earned sticker
  • Added the ability to mount the Developer Disk Image automatically so that starting the app console can actually work for most people
  • Updated to Xcode 26 and swift 6.2
  • Added format on save
  • Made it so that the app will bring you back to the setup screen if you open it and your setup is broken (to help with migration to swift 6.2)
  • Fixed SMS 2FA Bug
  • Made it so that open files can scroll properly and save when closing and re-opening crosscode
Update attachment
Earned sticker

I got unxip-rs working on windows and finally fixed the issue with the Move Files step taking several hours on windows. Also, I added the ability to select a custom anisette server, which led me to discover a major bug with my preferences system. All fixed now tho!

Update attachment

Unxip has been causing me nonstop problems, so instead of trying to fix them, I re-implemented unxip in rust :D
It's a bit slower, but it is more stable and uses way less memory, plus it will cut the app size down all the way to 13mb on windows and 23mb on linux

Update attachment
Arun George Saji
Arun George Saji Shipwright gave you feedback
29d ago

CrossCode (Build iPhone apps on Windows and Linux!)

Good job on this and thankyou for putting in the effort to make the AUR package.

from Arun George Saji

So, I thought I was going to be done with this project for a while but I keep crawling back...
I've added:
- Automatic WSL installation to make windows setup easier
- Improved help text and links to the troubleshooting page
- An AUR Build
- The ability to generate the darwin SDK from Xcode.app in case unxip fails

Now that I've made a post-ship devlog, I guess that means I have to add more features so I can ship again, right? 😉

Update attachment

Just realized that I linked the unxip program on Ubuntu 24.04, making it useless for anyone on 22.04 or 20.04. I booted up a docker image of ubuntu 20.04 to rebuild it, as well as fixed some bugs with my github actions script. I also attempted some fixes for the .AppImage but they ultimately didn't work

Update attachment

The bugs just keep on coming. This time I fixed:
- LSP not starting like 80% of the time on windows
- SDK not actually being passed to sourcekit (I never noticed because my main pc has a sourcekit config file with the sdk)
- Some other windows related bugs

I also added New Folder and Refresh options to the file explorer

Update attachment

I was intending to ship last night after I made the first alpha release but it turns out windows was super broken. Some notable bugs:
- Would load forever if wsl wasn't installed
- Would be stuck on installing darwin sdk forever in some cases
- Would open up a separate window every time a wsl process was created (which is quite often, resulting in windows spamming you whenever you use the app)
- Windows being windows

I think I fixed most of them, finally

Update attachment

Worked on some last minute bug fixes and polishing to get it ready for a ship!

Update attachment

I fixed some bugs with themeing and apple IDs and also implemented the ability to read the stdout so you can actually properly debug your app.

Update attachment

Added auto updates and fixed some bugs with built versions of YCode (some styles weren't correctly applied and the LSP wouldn't start correctly)

Update attachment

Added an import icon button and changed the default icon to be the crosscode logo

Update attachment

I rebranded to CrossCode (Cross as in X but also as in Cross-Platform) and made a new logo. I also update the syslog viewer a bit

Update attachment

Fix some bugs related to signing in with your apple id, added a spot to see the app version, and made it so that YCode can re-open your most recent project automatically.

Also, considering renaming to CrossCode (Cross as in X for XCode, but also Cross as in Cross-Platform) since YCode is already used by a few similarish projects on github.
If anyone is actually reading these, what do you think about the name CrossCode?

Update attachment

I improved the onboarding screen to make it more intuitive to new users as well as some other fixes

Update attachment

Went on a bit of a bug fixing spree. I fixed the main window showing during loading, and added a --showMainWindow parameter to help if anyone encouters a silent error later. I finally fixed the theme selector which has been broken for a long time, and now light theme is actually light instead of light with spots of dark.

Update attachment

At long last, windows support for sourcekit is here! Don't be fooled by the timestamps, this took many hours, just not all of them were in a code editor. Still a weird issue with getting it to startup, it takes a couple of restarts sometimes. I don't like windows very much

Update attachment

I ended up re-making the tab bar from scratch and changing how i use monaco editor to get go to definition to work. It's still a bit buggy but it works pretty well now! Plus I also made the open file button in the menu work finally

Update attachment

Added a tab to view the LSP output for debugging, and also fixed a couple bugs with the autostart

Update attachment

Set the LSP to autostart when you open a project, improved project validation, and added this limited memory warning. Almost done with LSP support!

Update attachment

Finally got windows builds working with the new zsign bindings

Update attachment

Worked some more on the isideload and zsign crates to get them to work on windows and to experiment with them

Update attachment

I extracted the sideloading code into a seperate crate, isideload (https://github.com/nab138/isideload). Lot of debugging and stuff but its done now.

Update attachment

I worked on updating dependencies and fixing bugs in apple-private-apis. I even made a pr to the original repo. Also started working on extracting the sideloading code from ycode into its own separate project (temporarily called isideload)

Update attachment

While procrastinating fixing errors with monaco-vscode-api, I decided to make proper rust bindings for zsign so I don't have to rely on precompiled binaries anymore. I was able to make them and publish them on crates.io! https://crates.io/crates/zsign-rust

Update attachment

I audibly gasped when I finally got the error to show up. Due to monaco-vscode-api and monaco-languageclients poor documentation I've spent the last couple days playing with different configurations and looking at existing projects to figure out how to get the lsp to work properly. And finally it works!! Still a lot of work to do until its ready but it works!!

Update attachment
  • Implemented building as .ipa
  • Fixed a bug preventing paid developer accounts from working
  • Added a Build group to the menu bar (they do the same things as the buttons on the right)
  • Added keyboard shortcuts for building
Update attachment

Windows support is finally here! After fixing numerous bugs and making some efficiency improvements, ycode is now capable of:
- Detecting swift sdks in wsl
- Generating and installing the darwin sdk in wsl
- Building a project
- Installing a built project to the device.

I also fixed a few bugs:
- Cancelling logins now works gracefully instead of causing any future login attempts to hang
- Swift 6.1 was changed to be the required toolchain (was originally swift 6.0 because I had the wrong xcode version)

So excited to be done with windows (for now).

Update attachment

Switched over to extracting the xip in the wsl filesystem but still have to fix some issues with symlinking. I love windows!!!!

Update attachment

Worked on darwin SDK installation in windows. After getting the xip extraction to work, It failed as it was unable to symlink the files like they should be. I'm going to have to redo this part to do the sdk preparation entirely within wsl so that the symlinks work properly. Yippee.

Update attachment

Worked on windows support some more and got WSL installed swift toolchains to show up in the app. That means they had to pass the internal validation as well, which meant I had to rewrite the whole swift invocation system to support running through wsl. The joys of windows.

Update attachment

Once again my devlog time isn't working right... Anyways I finally got the app to open on my windows desktop which took about 2 hours of installing various toolchains and dependencies... I love windows so much!!!!

Update attachment

Got the app to compile on windows again (still doesn't work though). Problem was that I was relying on a unix filesystem import which obviously doesn't work on windows, so I wrote a small wrapper that just invokes ln on wsl if its windows. Working on getting windows properly supported is my next goal

Update attachment

First successful install of an iOS app built on linux with swift instead of theos!
I added support for a ycode.toml config file to specify the version number and bundle id, and later other options.
I created a packer to take the compiled executable and required resources and put them into a .app
I updated the templates to use this new project structure

Update attachment

I spent some time working on a reusable operation view that will inform the user of errors and also make sure they know that things are working instead of just starting at a blank spinner. I think it turned out quite nice!

Update attachment

Been doing some research and stuff. Got bored and decided to start working on an operation view that basically will just show all the steps of an operation like installing the darwin sdk so that theres something nicer to look at than a spinner. Not much to show of it yet.

Update attachment

Made some minor styling updates and fixed a few visual glitches

Update attachment

Cleaned up some edges and did some research into how I will package the app. Also started playing with an iOS emulator to see how feasable integrating one might be, but it's taken me a few hours to setup and I'm still not done, so... unlikely that it will get added anytime soon.

Update attachment

Finished the sdk generation code, YCode is now able to take a downloaded Xcode.xip and convert it into a darwin sdk that swift can use to build an iOS app with. Also made some nice UI for doing so and detecting if the darwin sdk is already installed.

Update attachment

Added a few more projects (YCode, NetworkTableSharp, and this website) and tweaked the homepage plus added some links to a few projects.

Update attachment

Tried and failed to add transitions back to the home page from the projects page. Added some arrows to the slides in the project pages, and started updating and adding more projects.

Update attachment

Not much to show, just did some work on the sdk generation code

Update attachment

Decided to ditch theos so that I could build SPM support into YCode. Started by allowing the user to select a swift toolchain

Update attachment

Made some real templates. I'm doing research on swift package manager integration, and am thinking about replacing theos with something custom to support it.

Update attachment

Got project creation working! Still need to make a proper template but the app is all setup to have the user select a template and fill out the info, and it will copy the template and fill in the user data.

Update attachment

Added an early access disclaimer to the app and created a github action to build and upload recompiled linux and windows versions for testers

Update attachment

Added an app ID page to preferences and a developer settings page. While making the app ID page, I discovered a few bugs in the app ID registration code that prevented deploying in some cases, so those have been patched.

Update attachment

I updated the splash screen to use just a single HTML file so that it appears faster, and I updated the IDE onboarding page to fix styling, add the logo, and other misc changes.

Update attachment

Redid how Preferences are handled and how their look, and used the new system to make a snazzy certificate management page. If YCode is your only use of sideloading you shouldn't need it, but for someone like me who codes on different machines and sideloads apps, this is invaluable

Update attachment

Have been working on windows support. I hate windows paths

Update attachment

Even more internal cleanups, fixed several UI bugs, added more features to the integrated file browser, and added a project clean button to the toolbar.

Update attachment

Did a ton of internal cleanups as well as making the build and deploy button actually build and deploy!

Update attachment

Sideloading works!!! It's been such a long journey to get here (even before SOM I had spent well over 30 hours on attempts that ultimately failed) and I'm so glad it's finally working. Now I just need to polish everything up and I can start working on the actual IDE part of this project

Update attachment

Finished code to register app ids & app groups and to download provisioning profiles. Now have everything I need to sign the app ready (except for the code of course!)

Update attachment

Not much tangible progress but I spent some time porting over structures from Sideloader that will be important to signing the app.

Update attachment

Finally got certificate submission working!! this took way too long

Update attachment

Big refactor! Not only did this clean things up in the backend a lot, but I also made it so that your current Apple session is saved so to make sideloading faster.

Update attachment

Successfully added device as a development device with apples auth servers. One step closer to sideloading

Update attachment

Got apple developer api auth working!

Update attachment
Nicholas Sharp
Nicholas Sharp created a project
100d ago

CrossCode (Build iPhone apps on Windows and Linux!)

A code editor (IDE) to make and test native iPhone/iPad apps without owning a Mac. --- IMPORTANT: Setting up this app very involved, especially on windows. If you do not want to attempt it, there is a video on the demo link (release page). --- Features: - Code editor with Swift language features (autocomplete, error reporting, etc) - Install & Test apps on device via a custom made sideloader - SDK generator for compiling swift projects targeting iOS - Debugging utilities such as the app console, syslog and screenshots - Pages to manage your certificates, app ids, and more - Much more (and more to come)!

CrossCode (Build iPhone apps on Windows and Linux!)
58 devlogs 13 followers Shipped

Improved performance, SEO, and other various improvements.

Update attachment

Fixed a bug with the logo on mobile and added a mini projects page

Update attachment

Filled out the project page with pictures, cleaned up some UI bugs and finished the contact page.

Update attachment

Tweaked some appearances, added some more content and added an under construction warning so I could add the demo here.

Update attachment

Got a nice looking UI together! The home, projects, about, and project pages are mostly working (with fun animations too), just missing a lot of the projects.

Update attachment
Nicholas Sharp
Nicholas Sharp created a project
102d ago

Portfolio - nabdev

Personal portfolio showing off my projects, both past and present. My 3rd redesign of the site, and hopefully this one is here to stay.

Portfolio - nabdev
8 devlogs 0 followers Shipped
Nicholas Sharp
Nicholas Sharp joined Summer of Making
102d ago

This was widely regarded as a great move by everyone.