Typewise, a YC S22 startup developing an AI-powered keyboard focused on text prediction and correction, is hiring a Machine Learning Engineer in Zurich, Switzerland. The ideal candidate has experience in NLP, deep learning, and large language models, and will contribute to improving the keyboard's prediction accuracy and performance. Responsibilities include developing and training new models, optimizing existing ones, and working with large datasets. Experience with TensorFlow, PyTorch, or similar frameworks is desired, along with a passion for building innovative products that improve user experience.
Yes, it's technically still possible to write a plain C iOS app in 2025 (and beyond). While Apple pushes developers towards Swift and SwiftUI, and Objective-C is slowly fading, the underlying iOS APIs are still C-based. This means you can use C, potentially with some Objective-C bridging for UI elements or higher-level functionalities, to create a functional app. However, this approach is significantly harder and less efficient than using Swift or Objective-C, lacking modern tools, libraries, and simplified memory management. Maintaining and updating a C-based iOS app would also be a considerable challenge compared to using more modern, officially supported languages and frameworks. Therefore, while possible, it's not generally recommended for practical development.
Hacker News users discussed the practicality and challenges of writing a plain C iOS app in 2025. Several commenters pointed out that while technically possible, using only C would be incredibly difficult and time-consuming, requiring significant workarounds to interact with essential iOS frameworks (mostly written in Objective-C and Swift). Some suggested leveraging existing C libraries and frameworks like SDL or raylib for cross-platform compatibility and easier graphics handling. Others questioned the motivation behind such an endeavor, given the availability of more suitable languages and tools for iOS development. The general consensus was that while a pure C app is theoretically achievable, it's a highly impractical approach for modern iOS development. Some pointed out that Apple's increasing restrictions on low-level access make a pure C app even more challenging going forward.
Firebase Studio is a visual development environment built for Firebase, offering a low-code approach to building web and mobile applications. It simplifies backend development with pre-built UI components and integrations for various Firebase services like Authentication, Firestore, Storage, and Cloud Functions. Developers can visually design UI layouts, connect them to data sources, and implement logic without extensive coding. This allows for faster prototyping and development, particularly for frontend developers who may be less familiar with backend complexities. Firebase Studio aims to streamline the entire Firebase development workflow, from building and deploying apps to monitoring performance and user engagement.
HN commenters generally expressed skepticism and disappointment with Firebase Studio. Several pointed out that it seemed like a rebranded version of FlutterFlow, offering little new functionality. Some questioned the value proposition, especially given FlutterFlow's existing presence and the perception of Firebase Studio as a closed-source, vendor-locked solution. Others were critical of the pricing model, considering it expensive compared to alternatives. A few commenters expressed interest in trying it out, but the overall sentiment was one of cautious negativity, with many feeling that it didn't address existing pain points in Firebase development.
Apple's proprietary peer-to-peer Wi-Fi protocol, AWDL, offered high bandwidth and low latency, enabling features like AirDrop and AirPlay. However, its reliance on the 5 GHz band clashed with regulatory changes in the EU mandating standardized Wi-Fi Direct for peer-to-peer connections in that spectrum. This effectively forced Apple to abandon AWDL in the EU, impacting performance and user experience for local device interactions. While Apple has adopted Wi-Fi Direct for compliance, the article argues it's a less efficient solution, highlighting the trade-off between regulatory standardization and optimized technological performance.
HN commenters largely agree that the EU's regulatory decisions regarding Wi-Fi channels have hampered Apple's AWDL protocol, negatively impacting performance for features like AirDrop and AirPlay. Some point out that Android's nearby share functionality suffers similar issues, further illustrating the broader problem of regulatory limitations stifling local device communication. A few highlight the irony of the EU pushing for interoperability while simultaneously creating barriers with these regulations. Others suggest technical workarounds Apple could explore, while acknowledging the difficulty of navigating these regulations. Several express frustration with the EU's approach, viewing it as hindering innovation and user experience.
Google is shifting internal Android development to a private model, similar to how it develops other products. While Android will remain open source, the day-to-day development process will no longer be publicly visible. Google claims this change will improve efficiency and security. The company insists this won't affect the open-source nature of Android, promising continued AOSP releases and collaboration with external partners. They anticipate no changes to the public bug tracker, release schedules, or the overall openness of the platform itself.
Hacker News users largely expressed skepticism and concern over Google's shift towards internal Android development. Many questioned whether "open source releases" would truly remain open if Google's internal development diverged significantly, leading to a de facto closed-source model similar to iOS. Some worried about potential stagnation of the platform, with fewer external contributions and slower innovation. Others saw it as a natural progression for a maturing platform, focusing on stability and polish over rapid feature additions. A few commenters pointed out the potential benefits, such as improved security and consistency through tighter control. The prevailing sentiment, however, was cautious pessimism about the long-term implications for Android's openness and community involvement.
Lynx is an open-source, high-performance cross-platform framework developed by ByteDance and used in production by TikTok. It leverages a proprietary JavaScript engine tailored for mobile environments, enabling faster startup times and reduced memory consumption compared to traditional JavaScript engines. Lynx prioritizes a native-first experience, utilizing platform-specific UI rendering for optimal performance and a familiar user interface on each operating system. It offers developers a unified JavaScript API to access native capabilities, allowing them to build complex applications with near-native performance and a consistent look and feel across different platforms like Android, iOS, and other embedded systems. The framework also supports code sharing with React Native for increased developer efficiency.
HN commenters discuss Lynx's performance, ease of use, and potential. Some express excitement about its native performance and cross-platform capabilities, especially for mobile and desktop development. Others question its maturity and the practicality of using JavaScript for computationally intensive tasks, comparing it to React Native and Flutter. Several users raise concerns about long-term maintenance and community support, given its connection to ByteDance (TikTok's parent company). One commenter suggests exploring Tauri as an alternative for native desktop development. The overall sentiment seems cautiously optimistic, with many interested in trying Lynx but remaining skeptical until more real-world examples and feedback emerge.
Maestro is a new open-source mobile UI automation framework designed for end-to-end testing. It uses a flow-based syntax to define test scenarios, making tests readable and maintainable. Maestro supports both Android and iOS platforms and prioritizes speed and reliability. Unlike traditional frameworks that rely on accessibility IDs, Maestro interacts with UI elements directly, resulting in more resilient tests that are less prone to breaking when the app's internal structure changes. This approach also allows for interacting with elements even when accessibility IDs are missing or improperly implemented. The framework is designed to be easy to learn and use, aiming for a streamlined and efficient testing process for mobile developers.
Hacker News users generally expressed interest in Maestro, praising its cross-platform capabilities and ease of use compared to existing UI testing tools like Appium and Espresso. Several commenters appreciated the flow-based approach and the ability to write tests in Kotlin. Some raised concerns about the reliance on a single company (Mobile Dev Inc) and the potential for vendor lock-in. Others questioned the long-term viability and community support, comparing it to other tools that have faded over time. A few users shared their positive experiences using Maestro, highlighting its speed and stability. The ability to test across different platforms with a single test script was a recurring theme of positive feedback. Some discussion also revolved around the learning curve, with some finding it easy to pick up while others anticipating a steeper climb.
This blog post explores improving type safety and reducing boilerplate when communicating between iOS apps and WatchOS complications using Swift. The author introduces two Domain Specific Languages (DSLs) built with Swift's result builders. The first DSL simplifies defining data models shared between the app and complication, automatically generating the necessary Codable conformance and WatchConnectivity transfer code. The second DSL streamlines updating complications, handling the asynchronous nature of data transfer and providing compile-time checks for supported complication families. By leveraging these DSLs, the author demonstrates a cleaner, safer, and more maintainable approach to iOS/WatchOS communication, minimizing the risk of runtime errors.
HN commenters generally praised the approach outlined in the article for its type safety and potential to reduce bugs in iOS/WatchOS communication. Some expressed concern about the verbosity of the generated code and suggested exploring alternative approaches like protobuf or gRPC, while acknowledging their added complexity. Others questioned the necessity of a DSL for this specific problem, suggesting that Swift's existing features might suffice with careful design. The potential benefits for larger teams and complex projects were also highlighted, where the enforced type safety could prevent subtle communication errors. One commenter pointed out the similarity to Apache Thrift. Several users appreciated the author's clear explanation and practical example.
Taner Şener, the creator of FFmpegKit, a commercial wrapper around FFmpeg for mobile development, announced that he's ceasing development and support. Due to complexities in maintaining FFmpeg across various architectures and operating systems, increasing maintenance burden, and inadequate revenue to justify continued development, he's chosen to shut down. Existing clients can continue using their purchased licenses, but future updates and support are discontinued. The core issue is the difficulty of sustainably supporting a complex project like FFmpegKit, even as a paid product, given the rapid pace of mobile development and the substantial engineering effort required for compatibility. While acknowledging the disappointment this will cause some users, Şener emphasizes the unsustainable nature of the project's current trajectory and thanks users for their support over the years.
Hacker News users discuss the author's decision to discontinue FFmpegKit, an iOS/Android FFmpeg library. Several commenters express disappointment, highlighting FFmpegKit's ease of use compared to alternatives like MobileFFmpeg. Some suggest the decision stems from the difficulty of maintaining cross-platform compatibility and the complex build process involved with FFmpeg. Others speculate about the author's motivation, including burnout or lack of financial viability. A few offer alternative solutions or express hope for a successor project. The lack of clear documentation for building FFmpeg directly is also a recurring concern, reinforcing the value of projects like FFmpegKit.
A0.dev is a newly launched React Native app generator built to streamline mobile development. It allows developers to quickly create fully functional React Native apps with pre-built features like authentication, navigation, and data storage, significantly reducing boilerplate coding. The generated codebase follows best practices, uses TypeScript, and is designed for easy customization and extension. A0.dev aims to simplify the initial setup and development process, allowing developers to focus on building core app features rather than infrastructure.
The Hacker News comments on A0.dev, a React Native app generator, are generally positive and intrigued. Several commenters express interest in the speed and ease of use, praising the low-code/no-code approach. Some question the long-term viability and flexibility compared to building from scratch, raising concerns about vendor lock-in and limitations when needing to customize beyond the provided templates. Others point out the potential benefits for rapid prototyping and MVP development. A few commenters share their experiences with similar tools, drawing comparisons and suggesting alternative solutions. There's a brief discussion around pricing and the target audience, with some feeling the pricing might be high for individual developers.
"The Deck" is an open-source, cross-platform card game engine built using Flutter. It provides a framework for developers to create and deploy their own digital card games across various platforms, including desktop, mobile, and web. The engine offers features such as networking for multiplayer gameplay, a customizable UI system for designing card visuals and game boards, and a scripting system using Lua for defining game logic and rules. This allows developers to focus on the unique aspects of their game design rather than the underlying technical implementation, accelerating development time and facilitating rapid prototyping. The project aims to be a versatile and accessible tool for both hobbyist and professional game developers.
Hacker News users generally expressed positive interest in The Deck, praising its cross-platform compatibility via Flutter, open-source nature, and potential for customization. Some questioned the long-term viability of maintaining such a project, and the choice of Flutter for a game engine. Several commenters suggested alternative technologies or approaches, such as Godot, Bevy, or a web-based implementation. A few users shared their own experiences with game development in Flutter, offering both encouragement and cautionary tales about performance and complexity. There was a brief discussion around monetization strategies and the difficulty of standing out in the crowded mobile gaming market.
A developer created a minimalist podcast player for iOS called Podcatcher, built using the Racket programming language. It supports basic features like subscribing to RSS feeds, downloading episodes, and background playback. The project aims to explore the viability of Racket for iOS development, focusing on a simple, functional app with a small footprint. The developer highlighted the challenges of working with Racket on iOS, including compilation times and integrating with native APIs, but ultimately found the experience positive and plans further development, including potential Android support.
HN users generally praised the developer's choice of Racket, expressing interest in its capabilities for iOS development. Some questioned the viability of Racket for mobile development, citing concerns about performance and community size compared to established options like Swift. A few users shared their own experiences with Racket and suggested improvements for the app, such as adding iPad support and offline playback. Several commenters expressed interest in trying the app or exploring the source code. The overall sentiment was one of curiosity and encouragement for the project.
Libmodulor is a TypeScript library designed for building cross-platform applications with a strong focus on developer experience and maintainability. It leverages a modular architecture, promoting code reuse and separation of concerns through features like dependency injection, a unified event bus, and lifecycle management. The library aims to simplify complex application logic by providing built-in solutions for common tasks such as state management, routing, and API interactions, allowing developers to focus on building features rather than boilerplate. While opinionated in its structure, libmodulor offers flexibility in choosing UI frameworks and targets web, desktop, and mobile platforms.
HN commenters generally express skepticism about the value proposition of libmodulor, particularly regarding its use of TypeScript and perceived over-engineering. Several question the necessity of such a library for simple projects, arguing that vanilla HTML, CSS, and JavaScript are sufficient. Some doubt the touted "multi-platform" capabilities, suggesting it's merely a web framework repackaged. Others criticize the project's apparent complexity and lack of clear advantages over established solutions like React Native or Flutter. The focus on server components and the use of RPC are also questioned, with commenters pointing to potential performance drawbacks. A few express interest in specific aspects, such as the server-driven UI approach and the developer experience, but overall sentiment leans towards cautious skepticism.
Summary of Comments ( 0 )
https://news.ycombinator.com/item?id=43689801
HN commenters discuss the listed salary range (120-180k CHF) for the ML Engineer position at Typewise, with several noting it seems low for Zurich's high cost of living, especially compared to US tech salaries. Some suggest the range might be intended to attract less experienced candidates. Others express interest in the company's mission of improving typing accuracy and privacy, but question the technical challenge and long-term market viability of a swipe-based keyboard. A few commenters also mention the potential difficulty of obtaining a Swiss work permit.
The Hacker News post linking to a Typewise job posting for a Machine Learning Engineer elicited several comments, primarily focusing on the listed salary and the cost of living in Zurich.
One commenter questioned the attractiveness of the offered salary range of CHF 100,000 - 140,000, considering Zurich's high cost of living. They expressed doubt that someone with the required skills, particularly experience with large language models and transformers, would find this range competitive, especially when compared to US salaries. They speculated that the company might be targeting less experienced candidates or relying on the allure of living in Switzerland to compensate.
Another commenter agreed, stating that while Zurich is a beautiful city, the provided salary range would likely only allow for a modest lifestyle. They calculated the after-tax income and compared it to average rent prices, concluding that a significant portion of the salary would be consumed by housing costs. They also pointed out the limited upper bound of the salary range, suggesting it might not be appealing to highly skilled individuals.
Furthering the discussion on salary, a commenter who claimed to have lived in Zurich weighed in. They emphasized the high cost of housing and transportation, mentioning specific expenses like mandatory health insurance. They also noted the lower tax rates compared to other European countries, but ultimately agreed that the offered salary range isn't particularly competitive for experienced ML engineers, especially those with expertise in the currently in-demand areas like LLMs.
One commenter briefly mentioned the company's unusual keyboard layout as a potential downside.
The discussion also touched upon the hiring market, with one commenter speculating about a potential shift in the job market, where companies might be trying to hire experienced engineers at lower salaries than what was prevalent a year ago.
Finally, there's a brief exchange about the salary being denominated in Swiss Francs (CHF) and its current rough equivalence to the US dollar.