Can I translate an App from Android using GPLv3 into Swift? Because actually I don't use any source code. Do I need to keep it under GPLv3 and open source? Is there any method to avoid infection if it must under GPLv3?

  • 1
    This is already answered here. The answer given applies to any license and any software though: Re-implementing MIT licensed software in another language. I.e. translating to another language is a form of copying (derivative work). You can't wash away the GPL license of some software by rewriting it in another language. If you write your own version of some similar software, though, come back and we can talk.
    – Brandin
    Oct 15, 2018 at 6:16

2 Answers 2


The GPLv3 licence of the original requires that, if you create a work which is (in copyright terms) a derivative of the original, and you distribute your derivative, you must do so under GPLv3.

It's not clear to me in what sense you're using translate. If you mean it in the linguistic sense, translating from one human language to another, then I can't see any way not to create a derivative.

If you're using it to mean converting an application from one programming language to another, this is normally referred to as porting (or sometimes, as Brandin points out below, cloning). It is possible to do this in a way that doesn't create a derivative work, but it requires two people, and is known as a clean-room reimplementation. To do this, one person must take the current work apart, and express exactly what it does in a document called a functional specification. The other person then, without ever seeing the original work or directly communicating with the first person, implements the functional specification in the new computer language. This is an enormous amount of work. If you decide to do the port by yourself it is very likely that the work you create would be regarded as a derivative of the original work.

Edit in response to Amon's comment below: I do not think there is any justification for the "of course" tossed in at the top of that comment. There is one reliable way not to get sued for copyright violation, and that is not to infringe someone's copyright; everything else is just argument about how effectively one has done this. The advantage of the clean-room reimplementation is that, when done properly, it has already been held to exclude the possibility of violation (with, eg, Phoenix Technologies' IBM BIOS clone, and VTech Apple II ROM clones). In NEC Corp. v Intel Corp, the court held that the similarities between source and final product were a necessary consequence of the product's nature, and thus not a violation, because clean-room techniques had been used.

Any lesser porting technique leaves the defendant in the difficult position of trying to prove that they have not violated, instead of having a nice set of persuasive case law that moves the burden of proof of violation back towards the plaintiff.

  • 5
    A clean room implementation is of course not required to avoid infringement, it just makes a possible legal defense against copyright infringement claims much easier. Less stringent approaches have more risk, but are not necessarily infringing either. As long as OP doesn't borrow the design and or transcribe sections of the GPL'ed app but does their own design, inspired by the GPL'ed code, they will likely be fine. Copying ideas is allowed :)
    – amon
    Oct 13, 2018 at 15:35
  • 2
    @amon True, but that would not be considered "translating" or "porting". It would be a totally independent implementation. It's not inspired by the GPLed code, but by the visible behavior of the application and/or its documentation.
    – Barmar
    Oct 13, 2018 at 17:54
  • Porting is a form of translating. Specifically it implies that you look at OS-specific calls and translate them to OS-generic or other-OS-specific versions of calls that do the same thing. If you create a similar work as something else, that is not necessarily a port. For example LibreOffice is not a port of Microsoft Office. But to someone who has only used Microsoft Office, you might say casually (and wildly inaccurately, for simplicity) that LibreOffice is like a free version Microsoft Office, but in reality it is not a port. It is a reimplementation of a similar program.
    – Brandin
    Oct 15, 2018 at 6:10
  • In video games the word "clone" is also sometimes used. For example a Tetris clone implies that it is a game following the same rules as Tetris but which is not itself Tetris. Ideally a Tetris clone should not use any protected elements from the original. For example it may not be allowed to call itself "Tetris" in fact, it couldn't include any the original music or artwork, etc. The specific shapes of the blocks themselves (e.g. the line piece, the square piece) might be OK though, as long those shapes themselves are not copyrightable, but this probably requires a more detailed analysis.
    – Brandin
    Oct 15, 2018 at 6:14
  • @Brandin I'd prefer not to argue semantics in my comments field. For me, "translating" is a human language activity, and "porting" is a machine-language activity, and it's worth making the distinction because (imo) it's possible to port a work without copyright violation, but not possible to translate it. The cloning issue is, I think, a sideline: the bar on calling a clone Tetris has nothing to do with copyright.
    – MadHatter
    Oct 15, 2018 at 6:15

MadHatter names one viable way. Another method is to create an emulator. If your Swift emulator emulates enough of the Android runtime, it can run the orignal App (and likely at least a few more Apps, especially the simpler ones).

Because the emulator is a stand-alone work, it's not in any way covered by the original license. Downside: this is hard.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.