Stats

2
Projects
46
Devlogs
20
Votes
1
Ships

Coding Time

All Time: 85h 53m
Today: 0h 0m

Member Since

June 16, 2025

Badges

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

Projects

2
YCode (Build iOS apps on Windows and Linux!)
38 devlogs about 2 months ago
Portfolio - nabdev
8 devlogs about 2 months ago

Activity

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

If I had a nickel for every time my dev logs left a random amount of time out from them for no reason, I’d have two nickels.

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

For some reason my last devlog didn't count 45m randomly, so this is just to count that. Anyway heres what the new ycode.toml looks like

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

Fixed linux builds in github actions by statically linking the unxip binary (windows is still broken and I don't plan on fixing it very soon). Also did some more research into packing with swiftpm.

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
54d ago

YCode (Build iOS apps on Windows and Linux!)

iOS Development IDE for swift on windows and linux. - Uses swift with a darwin SDK to build the app for ios - Uses your apple account credentials to acquire a certificate and sign the app - Installs the app onto your device with the idevice rust crate Right now, the app is mostly a proof-of-concept, with just basic project creation, code editing, and deploying working. However, I hope to add many new features: - Debugging - SourceKit-LSP integration for proper error reporting in the IDE - UIs for managing settings, dependencies, etc

YCode (Build iOS apps on Windows and Linux!)
38 devlogs 9 followers

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
56d 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
56d ago

This was widely regarded as a great move by everyone.