akiraux / Akira

Native Linux App for UI and UX Design built in Vala and GTK
GNU General Public License v3.0
5.26k stars 199 forks source link

Import/export from/to *.sketch files #39

Open mistical2008 opened 6 years ago

mistical2008 commented 6 years ago

As I know, .sketch files have .json structure. Would be better make import from *.sketch. Hudge amount of ui-designers use Sketch, and for gaining popularity for Akira need compability with most popular tools Sketch, Figma and etc.

Alecaddd commented 6 years ago

The file format of Akira will be a JSON file. In the roadmap, I already have an importer feature for Sketch files, but I don't think I'll implement an export for it. It adds an extra layer of complexity and maintenance that I can't afford. If I do that, it means I have to have a Mac and Sketch always updated in order to properly test the file with the new version, which it defeats the purpose of Akira, allowing content creators to not be tied to an OS. Linux is the priority here. Thanks for the suggestion.

julientaq commented 6 years ago

I agree with @Alecaddd that creating a specific exporter is a loss of time: if sketch changes the way the files are structured, then it means that you need to update the exporter, which comes at great cost.

But at the same time, if we say that akira is linux first/only, then we need ways to collaborate with others.

At the same time, i'm working with mac users with sketch, and the way i look at it, i think we need a UI unified format, like the UFO (http://unifiedfontobject.org/) for the font files, that each app should be able to handle.

Meantime, Figma just shipped an API to work with the files. Since we're using json, be sure that the api for Akira's files is well documented, and we'll have a very good starting point for collaboration.

Alecaddd commented 6 years ago

Thanks for the info. Definitely, making Akira useful and usable for as many users as possible is the final goal. For now, in this early stage of development, I'm mostly worried about making it solid, fast, and highly scalable for big projects. Everything else will come a bit naturally in the future, and hopefully, things will be developed faster if I can slowly build a team of developers around it. Cheers

ryantheleach commented 5 years ago

I've seen Lunacy on Windows struggle with .sketch files, So whilst this would be a killer feature for me, I think it's likely to be a complete sinkhole of work supporting that proprietary format from the start.

albfan commented 5 years ago

Is hard to keep in sync with other formats, but to avoid a complete no, we can make import/export a pluggable system, giving plumbings for anyone who wants to take care of these things.

Benjamin-Davies commented 5 years ago

I think that @albfan's idea for how to structure an import/export system is great. I personally would find a DXF import/export to be useful, even just for basic shapes.

adrianocr commented 5 years ago

Sorry to be that guy but is there any update on this? I would pay a ridiculous fee for it if this project wasn't open source. Having access to sketch files is the ONLY thing that's keeping me from switching to Linux full-time.

albfan commented 5 years ago

I just can say sketch file format seems to be readable.

https://github.com/AnimaApp/sketch-web-viewer. We can code a skeleton for pluggable sketch reader/writer but will take time until it is full featured, and definitely not in roadmap now.

That doesn't mean we cannot read some basic examples as PoC. Indeed that will help us to abstract a reader for svg, as we do with https://github.com/akiraux/libgtkcanvas.

Can you upload an original sketch file and a PNG/SVG capture with a real basic example so we have examples when we are ready to prototype this?

adrianocr commented 5 years ago

@albfan Shopify's UI kit is provided as sketch files and is very extensive: https://polaris.shopify.com/resources/polaris-ui-kit.

I don't think I can upload one of my personal ones because they're all client work and I'm not sure how they'd feel about that.

Alecaddd commented 5 years ago

Hey @adrianocr, thanks for your interest in Akira. I'm in your same situation as I'm forced to use macos for design work only due to Sketch. Having the ability to import sketch files will come in the future, but not immediately with the first release. It'll be tricky, especially due to the fact that sketch doesn't use only standard SVG in order to offer unsupported features like cone gradients.

Offering the ability to cross collaborate with Sketch is one of our many end goals, something that will probably happen once Akira gets a good and stable couple of releases and the user base and contributions grow.

12people commented 4 years ago

@albfan The Sketch file format has been officially fully documented at https://github.com/sketch-hq/sketch-file-format

albfan commented 4 years ago

@12people If you can attach a sketch file and a screenshot at some point we can check what can be done). Some easy and complex examples would be better than only one.

albfan commented 4 years ago

@adrianocr same for shopify, but see this could be in backlog for some time.

12people commented 4 years ago

@albfan Sure, let me know when you start looking into working on this. There's lots of potential for complex examples (e.g. symbols within symbols within symbols, nested PNGs with effects applied on top of them, Sketch files extended with extra attributes through add-ons, etc.), but it'd be good to know what exactly you'd be working on so I can create the suitable Sketch files.

albfan commented 4 years ago

@12people I would the the other way, I will put here a simple sketch file and a screenshot and a complex sketch file and its screenshot. Something like https://github.com/akiraux/Akira/wiki/Artwork.

Eventually we will look at it at the right time, or design an interface so anyone could "maintain" a import/export plugin for other formats.

12people commented 4 years ago

@albfan Alright, will share some files later. I'm going to be making example Sketch files for another project (though they'll have additional attributes from an add-on that you'll be able to ignore), so I'll be able to fill two needs with one deed. :)

notpushkin commented 4 years ago

Lunacy developers say supporting Sketch was worth “1.5 year of debugging”, so... not an easy task, I assume. Maybe a crowdfunding campaign for this particular feature would help? I'm ready to chip in a couple bucks, anybody else?

12people commented 4 years ago

@notpushkin Sketch published their file format schema only recently, in the middle of 2019: https://github.com/sketch-hq/sketch-file-format

Since Lunacy worked on supporting Sketch before this schema became available, I'm thinking adding support might be a whole lot easier now.

AdsonCicilioti commented 4 years ago

Yep guys! Lunacy works natively with sketch file format and allow yet use sketch cloud to storage the project files.. Beyond this doing a good management for cloud files (edit/save/update/delete).

Will be a great feature for Akira as Sketch editor on Linux.

albfan commented 4 years ago

As said. Provide a sketch example and a screenshot of what it represents and we can provide the plumbings to do an import/export load/save plugin (for sketch or any other format).

But implement the full spec is something we cannot promise as we don't know the changes the spec gets over time, or if our paradigm matches the one for sketch.

But would be interesting have a look!

AdsonCicilioti commented 4 years ago

@albfan https://developer.sketch.com/file-format/ This help?

AdsonCicilioti commented 4 years ago

Lunacy choosed Sketch file format as default file format, maybe, because the open and good specification to work with this format.

We will have Sketch on mac, Lunacy on Windows and Akira on Linux... And all Designers on all Systems sharing and colaborating arround of a good file format, or supporting these. Figma also open Sketch files perfectly.

I'll go beyond and say que .sketch must be a default file format. I do not want to disregard all the wonderful careful work they are doing here, not to mention the investment, but I believe it would be a good discussion around this adoption.

And I believe that when you look at the specifications of that format, you will see some similarity with what you are already doing. Scold me if I'm talking silly.

Alecaddd commented 4 years ago

I love your enthusiasm but let's not get ahead of ourselves and let's try to keep our feet on the ground.

First, it'll take us years before we will be able to properly import and export sketch files. It's definitely a feature we're interested in implementing, but it's not a priority at all since we're still dealing with huge limitations due to the graphic libraries currently available on Linux.

Second, I always stick to the mantra of "do not build your house on someone else backyard". We have thousands of cautionary tales of discontinued products, broken APIs, and projects going full closed source. Going the extra mile and jumping on the hype wagon of a single unified and default file format is a bit dangerous right now, especially since that file format comes from a proprietary and closed source company, and it's definitely outside of our current scope.

First, let's be sure Akira works, runs well, and can empower Linux users to design interfaces with a modern workflow. Compatibility with other proprietary software will come way later.