Urgent.News

What's breaking now, across thousands of outlets.

Tech

I am an Android developer. This is my first web project: CruxDev

Up until recently, my background was strictly in native Android development. I spent my days working with Kotlin, Jetpack Compose, Gradle builds, and Android lifecycle quirks. Whenever I was building and debugging mobile apps, I constantly ran into situations where I needed quick utility tools: Decoding an auth JWT from an API response to see why a user session failed Formatting large, messy JSON…

For years, my professional life revolved around creating Android applications. My expertise lay in Kotlin, Jetpack Compose, Gradle builds, and the intricacies of Android's lifecycle. During these endeavors, I encountered numerous instances where I required swift utility tools. These ranged from decoding authentication tokens from API responses to debugging complex JSON outputs.

To address these needs, I simply relied on Google searches, pasting sensitive data into unfamiliar websites, which left me uneasy. To overcome this, I embarked on a journey to learn modern web development. Instead of constructing another cliché to-do list app, I aimed to create a tool I'd truly utilize: CruxDev.

CruxDev is an extensive suite of three hundred plus developer tools that operate solely in the browser. Drawing from my Android background, where offline-first architecture is standard, I adopted similar principles. Each tool runs independently without server-side processing, employing JavaScript Web Workers and WebAssembly for local computations.

This ensures that no user input ever leaves the device. The application is also designed to function offline, enabling installation as a Progressive Web App (PWA) on both desktop and mobile platforms. It boasts a clutter-free interface, loads swiftly, and operates without tracking or ads.

Transitioning from Android development to a substantial web application with React, TypeScript, and Vite presented a steep learning curve. Managing state and optimizing bundle sizes in a single-page application starkly contrasted with Android's activity and view model management. Ensuring the browser UI remained fluid during the processing of large JSON files necessitated mastering the use of Web Workers.

Additionally, achieving a responsive layout across various screen sizes was a humbling experience that deepened my appreciation for CSS.

I welcome any constructive feedback on CruxDev, as this is indeed my first significant web application. I am keen to receive insights from seasoned web developers regarding the site's performance, responsiveness, and user interface. Are there any navigation elements that feel unnatural? Which developer tools do you frequently employ and believe could be beneficial additions? Your comments on the live site (https://cruxdev.tech) would be greatly appreciated!

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Cyberattack in Berlin: 1.4 million files on the Dark Web

Shortly before Berlin's state parliamentary election, the hacker group Rhysida stole data, tried to extort the Berlin Senate and published the data on the dark web after their attempt failed.

  • Over 1.4 million files leaked on dark web during Berlin cyberattack
  • Rhysida cybercriminal group stole data, demanded 30 bitcoins ransom
  • Phishing email compromise led to breach affecting public works and transportation

Go GC Pauses in an RTB Bidder: Mark Assist, Deadlines, and the Rust Decision

A bidder that loses auctions on timeout while its average looks healthy is being described by the wrong number. The deadline belongs to the exchange and covers the network in both directions.

  • RTB bidder performance depends on exchange deadline and auction timeouts
  • Round trip time includes latency, connection setup, queue time, deserialization
  • Garbage collection concurrently impacts single connection performance

More from Thursday 10 September →