[{"data":1,"prerenderedAt":591},["ShallowReactive",2],{"project-41384144":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":49,"post_text":51,"what":52,"said":92,"maker_in_thread":210,"shape":222,"grid":226,"attempts":551,"same_week":556,"maker_shows":39,"maker_hidden":583,"reader_version":584,"card":585},"41384144","Skip","Build native iOS and Android apps from a single Swift codebase","title","Show HN: Skip – Build native iOS and Android apps from a single Swift codebase","https:\u002F\u002Fskip.tools\u002F","skip.tools","marcprux",1724877869,2024,322,118,178,3515,6,"legend","dev_tools","cross-platform mobile framework","cli",[24,25,26,27,28],"swift to kotlin","cross-platform mobile","swiftui android","jetpack compose","native mobile apps","curious",0.146,{"positive":32,"neutral":33,"mixed":34,"critical":35},20,40,4,13,77,{"execution":38,"idea":41,"docs":43,"design":45,"performance":46,"pricing":47},{"positive":39,"critical":40},1,3,{"positive":42,"critical":34},10,{"positive":44,"critical":44},0,{"positive":44,"critical":39},{"positive":40,"critical":39},{"positive":44,"critical":48},2,[50,40,40,39,44,44,39,40,39,44,40,44,50,39,40,40,34,39,48,39,40,48,39,50,40,40,50,50,40,50,40,40,40,34,34,40,40,40,50,50],5,"Hello Hacker News. I'm Marc, one half of the team that created skip.tools. Skip is a tool that transpiles your SwiftUI iOS app into a Kotlin Jetpack Compose app, and enables you to use a single language to create a complete app that reaches the entire mobile marketplace.\n\nWhat it is: Skip stands in contrast to other cross-platform development tools like Flutter, React Native, and Xamarin, in that it enables the creation of genuinely native applications for both of the dominant mobile platforms. It doesn't embed a separate engine or runtime into your app, but instead lets you use pure Swift and",{"problem":53,"audience":59,"pricing":59,"motivation":60,"time_to_build":59,"stack":69,"openness":90,"stage":91,"team_size":90},{"value":54,"source":55,"evidence":56},"Lets iOS developers ship native Android apps from the same Swift and SwiftUI codebase","maker",[57],{"id":58},"post",null,{"value":61,"source":62,"evidence":63},"Let Swift developers reach the Android market without learning Android","inferred",[64,65],{"id":58},{"id":66,"by":67,"text":68},"41385346","langcss","Sounds amazing. From a career point of view it is good for a dev as they click up native skills instead of some abstraction layer, while being able to do cross platform. Been a…",[70,74,78,82,86],{"value":71,"source":55,"evidence":72},"Swift",[73],{"id":58},{"value":75,"source":55,"evidence":76},"SwiftUI",[77],{"id":58},{"value":79,"source":55,"evidence":80},"Kotlin",[81],{"id":58},{"value":83,"source":55,"evidence":84},"Jetpack Compose",[85],{"id":58},{"value":87,"source":55,"evidence":88},"Swift Package Manager",[89],{"id":58},"unknown","launched",{"praise":93,"objections":115,"requests":138,"questions":157,"alternatives":187},[94,107],{"value":95,"source":96,"evidence":97},"Keeps developers in Swift with native controls and no embedded runtime","commenter",[98,102,103],{"id":99,"by":100,"text":101},"41385320","LifeUtilityApps","Loving this so far, I've been working with it for a week now. I have a personal app, DownPay for iOS, that is built with SwiftUI that I want to bring to Android. I tried going…",{"id":66,"by":67,"text":68},{"id":104,"by":105,"text":106},"41385051","flawn","Damn, this sounds too good to be true. Really nothing to add here except than keep pushing! This fixes the big painpoint that nowadays' cross-platform frameworks come with…",{"value":108,"source":96,"evidence":109},"Tight Xcode integration makes it feel like magic",[110,114],{"id":111,"by":112,"text":113},"41387383","rock_artist","As others, from the videos, I really like the tight Xcode integration. Reading the FAQ I do have few concerns, 1. Open-source, it mentions GPL forms, is there a reason MIT not…",{"id":99,"by":100,"text":101},[116,123,134],{"value":117,"source":96,"evidence":118},"Limited coverage of Apple frameworks such as StoreKit, WebKit and CryptoKit",[119],{"id":120,"by":121,"text":122},"41387521","happybuy","Most existing iOS apps are likely to use a suite of Apple platform frameworks beyond simply pure Swift and SwiftUI. For those cases, Skip's approach seems to be a range of Skip*…",{"value":124,"source":96,"evidence":125},"Maintenance burden of re-implementing Apple APIs on Android",[126,130],{"id":127,"by":128,"text":129},"41388376","isodev","I can appreciate the effort of trying to make it easier for iOS developers to also target Android. However, there is no magic solution to cross-platform development. The effort…",{"id":131,"by":132,"text":133},"41388458","mad_tortoise","I'm not sure I see the point, other than this being aimed at first world (see US\u002FEU) businesses who solely have iOS application's and want to convert those to Android. So if you…",{"value":135,"source":96,"evidence":136},"Existing native Android or cross-platform tools like Flutter and KMP are better for Android-first teams",[137],{"id":131,"by":132,"text":133},[139,144,150],{"value":140,"source":96,"evidence":141},"Support for more Apple frameworks such as MapKit, StoreKit and WeatherKit",[142,143],{"id":120,"by":121,"text":122},{"id":111,"by":112,"text":113},{"value":145,"source":55,"evidence":146},"Better C++ interop via JNA",[147],{"id":148,"by":11,"text":149},"41389786","You are correct that JNA's C++ integration – while possible – is not exactly seamless. It is an area that we are actively researching better solutions for.",{"value":151,"source":96,"evidence":152},"Examples of existing apps migrated to Skip",[153],{"id":154,"by":155,"text":156},"41385288","wirelesspotat","Good to see Skip on the home page! We were evaluating Skip just a couple weeks ago for a side project. The issue we ran into is that we've already built a native iOS app with…",[158,162,170,180],{"value":159,"source":96,"evidence":160},"Does it work with existing apps built with SwiftUI and UIKit",[161],{"id":154,"by":155,"text":156},{"value":163,"source":96,"evidence":164},"How platform-specific UI differences such as back buttons are handled",[165,169],{"id":166,"by":167,"text":168},"41388294","giamma","Hello, this looks like a cool product, congratulations. How does it handle the different UI guidelines on the two platforms? I have not been using Android for some years, but the…",{"id":66,"by":67,"text":68},{"value":171,"source":96,"evidence":172},"Can Swift PM dependencies be used natively on Android",[173,177],{"id":174,"by":175,"text":176},"41395949","RedComet","I've been following this for a while now. Skimming the page, it appears the answer is no, but I'll ask anyway: If all of the project's dependencies are pure Swift (+Foundation)…",{"id":178,"by":11,"text":179},"41396149","Not yet, but this is a capability that we are actively investigating.",{"value":181,"source":96,"evidence":182},"How Material You dynamic colors are handled",[183],{"id":184,"by":185,"text":186},"41386963","charliesbot","How does it handle cases like Material You Dynamic Colors? I am thinking about making an app, and we want to support the best offerings from each OS. So the dynamic colors is…",[188,193,198,203],{"value":189,"source":96,"evidence":190},"Flutter",[191,192],{"id":131,"by":132,"text":133},{"id":66,"by":67,"text":68},{"value":194,"source":96,"evidence":195},"React Native",[196,197],{"id":99,"by":100,"text":101},{"id":131,"by":132,"text":133},{"value":199,"source":96,"evidence":200},"Kotlin Multiplatform",[201,202],{"id":131,"by":132,"text":133},{"id":184,"by":185,"text":186},{"value":204,"source":96,"evidence":205},"Xamarin",[206],{"id":207,"by":208,"text":209},"41258562","banashark","Looks very cool! Looking at the docs gives a good overview of how it works. Regarding transpilation and the tradeoffs (https:\u002F\u002Fskip.tools\u002Ftopic\u002Ftranspilation-tradeoffs\u002F), does…",{"comments":35,"answered":211,"key":212},8,[213,216,219],{"id":214,"text":215},"41394528","> given the point of this is not having to learn android We wouldn't say that is the point of using Skip. The benefit you get from using Skip is that you can use a single…",{"id":217,"text":218},"41259761","Thanks for the positive words! Any limitations in the transpiler (such as some advanced generics) will only be limitations on the Android side – the iOS side can still do…",{"id":220,"text":221},"41390189","> This will likely grow over time This is indeed our primary focus, now that Skip 1.0 is released. We already have a bunch of open-source frameworks that bridge common libraries…",{"commenters":223,"max_depth":224,"maker_replies":35,"first_comment_mins":44,"lifespan_hours":225},64,9,129,[227,229,233,236,240,243,245,248,250,252,256,259,263,266,268,270,273,275,277,279,281,284,286,290,292,295,297,300,303,305,308,310,312,315,317,319,322,326,330,333,335,338,341,342,343,346,347,349,352,355,357,358,360,364,366,369,372,375,377,378,382,386,387,389,394,397,399,401,406,409,414,419,421,425,427,429,430,433,435,437,439,444,446,448,453,456,460,463,467,469,471,472,474,476,480,484,487,489,491,495,497,501,505,509,511,514,516,518,520,522,524,527,529,531,535,539,543,547],[99,44,50,228,100,44],"project\u002Fpositive\u002Fexecution",[230,44,40,231,232,44],"41387238","project\u002Fneutral\u002Fexecution","AnonHP",[234,44,40,231,235,44],"41389427","abewhite",[237,44,44,238,239,44],"41390525","commenter\u002Fneutral\u002Fnone","nprateem",[241,44,44,238,242,44],"41394469","raydev",[214,44,44,244,11,39],"maker\u002Fneutral\u002Fnone",[246,44,40,231,247,44],"41402267","evereverever",[249,44,40,231,235,44],"41406006",[131,39,39,251,132,44],"project\u002Fcritical\u002Fidea",[253,39,44,254,255,44],"41388496","commenter\u002Fpositive\u002Fidea","anakaine",[257,39,44,258,132,44],"41388584","commenter\u002Fcritical\u002Fidea",[260,39,44,261,262,44],"41389292","commenter\u002Fneutral\u002Fidea","ElFitz",[264,39,44,238,265,44],"41398164","MrDresden",[267,39,44,261,262,44],"41399109",[269,39,44,238,132,44],"41399220",[271,39,44,238,272,44],"41401745","gbalduzzi",[274,39,44,238,262,44],"41403146",[276,39,44,238,262,44],"41403309",[278,39,39,251,128,44],"41390276",[280,39,44,238,242,44],"41394509",[282,39,50,283,235,44],"41389490","project\u002Fpositive\u002Fidea",[285,39,39,251,132,44],"41389636",[287,39,44,288,289,44],"41389712","other\u002Fneutral\u002Fidea","cvwright",[291,39,39,251,132,44],"41389784",[293,39,44,238,294,44],"41392618","joshuakcockrell",[296,39,44,238,132,44],"41398710",[298,39,44,299,128,44],"41390213","other\u002Fneutral\u002Fnone",[301,39,44,238,302,44],"41403451","kernal",[304,39,44,288,265,44],"41398115",[306,39,44,238,307,44],"41391505","BodyCulture",[111,48,40,309,112,44],"project\u002Fneutral\u002Fdocs",[311,48,40,309,235,44],"41389416",[313,40,44,299,314,44],"41387764","fifafu",[316,40,44,299,235,44],"41389511",[318,40,44,299,314,44],"41390049",[320,34,50,283,321,44],"41384669","amehregan",[323,34,40,324,325,44],"41386235","project\u002Fneutral\u002Fdesign","itake",[327,34,50,328,329,44],"41386294","project\u002Fpositive\u002Fperformance","dkga",[331,34,39,332,325,44],"41387573","project\u002Fcritical\u002Fexecution",[334,34,40,309,235,44],"41390110",[336,34,39,337,128,44],"41390308","project\u002Fcritical\u002Fdesign",[339,34,44,238,340,44],"41399148","lightyear_clone",[207,50,40,231,208,44],[217,50,44,309,11,39],[344,50,44,299,345,44],"41384632","dang",[154,18,40,231,155,44],[348,18,40,309,235,44],"41385348",[350,18,40,231,351,44],"41385689","yumraj",[353,18,40,231,354,44],"41385927","wahnfrieden",[104,356,50,328,105,44],7,[120,211,39,332,121,44],[220,211,44,359,11,39],"project\u002Fneutral\u002Fnone",[361,224,40,362,363,44],"41386207","project\u002Fneutral\u002Fpricing","billylo",[365,224,40,362,351,44],"41386320",[367,224,40,362,368,44],"41388951","pzo",[370,224,39,371,351,44],"41393321","project\u002Fcritical\u002Fpricing",[373,224,39,371,374,44],"41390078","s_dev",[376,224,44,238,351,44],"41393353",[127,42,39,332,128,44],[379,380,40,231,381,44],"41388137",11,"nivertech",[383,384,40,359,385,44],"41387731",12,"sharp11",[166,35,40,324,167,44],[388,35,40,324,235,44],"41389534",[390,391,39,392,393,44],"41385079",14,"project\u002Fcritical\u002Fnone","gavinh",[395,391,39,392,396,44],"41385232","scosman",[398,391,44,299,368,44],"41388433",[400,391,44,299,340,44],"41431779",[402,403,40,404,405,44],"41387701",15,"project\u002Fneutral\u002Fidea","badoongi",[407,403,50,283,408,44],"41404406","icodestuff",[410,411,50,412,413,44],"41386957",16,"project\u002Fpositive\u002Fnone","jamil7",[415,416,40,417,418,44],"41387177",17,"project\u002Fmixed\u002Fexecution","cmt8",[420,416,40,231,413,44],"41387267",[422,423,40,231,424,44],"41387536",18,"Cloudef",[426,423,44,231,11,39],"41389840",[174,428,40,231,175,44],19,[178,428,44,231,11,39],[431,32,50,283,432,44],"41403149","gwbennett",[66,434,50,283,67,44],21,[436,434,44,324,11,39],"41385375",[438,434,50,412,235,44],"41385397",[440,441,40,442,443,44],"41386948",22,"project\u002Fneutral\u002Fperformance","josh_carterPDX",[445,441,50,328,235,44],"41387148",[447,441,50,283,413,44],"41387231",[449,450,39,451,452,44],"41385614",23,"project\u002Fcritical\u002Fperformance","smusamashah",[454,450,44,455,11,39],"41385674","maker\u002Fneutral\u002Fperformance",[457,458,50,283,459,44],"41388362",24,"piyushtechsavy",[461,462,50,283,329,44],"41386286",25,[464,465,40,231,466,44],"41385479",26,"atentaten",[468,465,44,231,11,39],"41385516",[470,465,40,231,368,44],"41388386",[148,465,44,231,11,39],[184,473,40,324,185,44],27,[475,473,40,324,235,44],"41387162",[477,478,40,417,479,44],"41387589",28,"8mobile",[481,482,40,324,483,44],"41385880",29,"lawgimenez",[485,482,40,324,486,44],"41385948","pushupentry1219",[488,482,40,324,235,44],"41385952",[490,482,50,412,483,44],"41385978",[492,493,40,404,494,44],"41386833",30,"vinibrito",[496,493,40,404,235,44],"41387237",[498,499,50,283,500,44],"41387116",31,"preciousoo",[502,503,40,231,504,44],"41386701",32,"grounder",[506,507,40,359,508,44],"41385024",33,"mariocesar",[510,507,44,359,11,39],"41385390",[512,507,40,417,513,44],"41385469","nyrulez",[515,507,44,359,11,39],"41385484",[517,507,40,231,351,44],"41385766",[519,507,44,231,11,39],"41385842",[521,507,44,238,351,44],"41386275",[523,507,40,231,235,44],"41385933",[525,526,40,359,351,44],"41385672",34,[528,526,44,359,11,39],"41385814",[530,526,40,359,351,44],"41386285",[532,533,50,412,534,44],"41385207",35,"thomasswift",[536,537,50,412,538,44],"41387843",36,"dilliwal",[540,541,50,412,542,44],"41386549",37,"thomaskang08",[544,545,50,283,546,44],"41408915",38,"486sx33",[548,549,40,417,550,44],"41390338",39,"neil459",[552,555],{"id":553,"t":554,"points":18,"comments":39},"40588411",1717611522,{"id":4,"t":12,"points":14,"comments":15},[557,562,566,571,575,579],{"id":558,"name":559,"points":560,"category":561},"41322281","InstantDB",1145,"data",{"id":563,"name":564,"points":565,"category":20},"41318133","ghidra-delinker-extension",304,{"id":567,"name":568,"points":569,"category":570},"41358490","Remove-bg",286,"ai",{"id":572,"name":573,"points":574,"category":20},"41377960","IPA",270,{"id":576,"name":577,"points":578,"category":561},"41339308","ChartDB",227,{"id":580,"name":581,"points":582,"category":20},"41317988","Isaiah",196,false,"v2",{"id":586,"name":5,"line":6,"ai":583,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":587,"top":18,"kw":588,"maker":11,"domain":10,"tier":19,"attempts":48,"strip":589,"url":9,"mix":590,"praise":95,"objection":117,"sub":21},41384144,0.15,[24,25,26,27,28],"5331001310305133412132153355353334433355",[32,33,34,35],1793991098962]