¿Cómo crean las personas aplicaciones que imitan otras aplicaciones sin copiar código?

Después de dedicar suficiente tiempo a la programación, puede obtener una idea muy sofisticada sobre cómo se codifica una aplicación con solo verificar su comportamiento.

Permítanme dar un ejemplo sobre Flappy Bird:

  • Bird tiene una velocidad X de 0. Solo tiene velocidad Y.
  • Cada espacio que el pájaro tiene que pasar es 1.25 veces la distancia que el pájaro puede volar con un solo salto.
  • La gravedad es un valor constante de, digamos, 10 unidades por unidad de tiempo al cuadrado y se aplica durante todo el juego.
  • Cada vez que el usuario hace clic en la pantalla, simplemente establecemos la velocidad Y del pájaro en 20 unidades por unidad de tiempo hacia arriba.
  • Esto significa que el espacio vertical que el ave debe pasar en cada tubería debe ser de 25 unidades.
  • Las tuberías se mueven hacia el ave con, digamos, 20 unidades por unidad de tiempo. Llamaré a esto X velocidad de tubería
  • Digamos que la altitud del pájaro es y1 cuando el usuario hace clic en la pantalla. El pájaro se eleva a la altitud máxima de y2 y luego comienza a perder altitud, ¿verdad? La distancia X que las tuberías han recorrido hacia el pájaro cuando el pájaro perdió su altitud de nuevo a y1 después de elevarse al pico, lo defino como la distancia de vuelo y el tiempo entre el tiempo de clic y el tiempo de regreso a y1, lo defino como el tiempo de vuelo .
  • La distancia entre dos tuberías consecutivas debe ser igual a la distancia de vuelo 2 *, que es igual a 2 * (tiempo de vuelo) * (velocidad X de la tubería)
  • La diferencia de altitud entre huecos de tuberías consecutivas no puede ser más de 3 * (y2 – y1), de lo contrario el pájaro no podrá pasar independientemente de qué tan bien el jugador controle al pájaro.

Ahora tengo suficiente información para crear mi propio clon de flappy bird y he visto 0 líneas de su código (aunque jugué mucho).

TLDR: las personas usan la aplicación y todas sus funciones hasta el punto en que saben exactamente cómo se comporta la aplicación y clonan el comportamiento

He creado SlimSocial para Facebook, una aplicación alternativa para Facebook.

Copiar código es ilegal solo en caso de copiar / pegar.

Tenga en cuenta que no puede descomprimir una aplicación para leer el código en su interior.

Hacer código único puede significar:

  • Haz un diseño único

Es muy difícil copiar el diseño de una aplicación. Requiere muchas veces y casi no tiene sentido . Es más fácil inspirarse viendo una aplicación y comenzar desde allí para hacer la suya .

  • Hacer funcionalidades únicas

Piense en Snapchat e Instagram o Whatsapp y Telegram: se están copiando entre sí, pero estoy seguro de que su código es diferente .

Cuando codifica, especialmente cuando codifica cosas difíciles, puede escribirlo de miles de maneras diferentes y obtener el mismo resultado.

Necesita separar el código del diseño. El código es cómo funcionan las cosas, la lógica, etc. El diseño es cómo se ven las cosas: los gráficos.

Es muy posible “clonar” cualquier aplicación: una vez que comprenda cómo funciona, todo lo que queda es copiar algunos gráficos.

Computer Code es simplemente un lenguaje: la historia de Hansel y Gretel se puede contar de muchas maneras diferentes, en muchos idiomas diferentes, pero el significado sigue siendo el mismo.

Las aplicaciones son las mismas: hay infinitas formas de programar cualquier aplicación en particular, aunque superficialmente se vean iguales.

He tenido proyectos en los que me han dicho que copie la misma funcionalidad y aspecto. Básicamente para reconstruir un sitio web existente exactamente como es.

La diferencia era que la base de código para el sitio web existente era extremadamente fea. El CSS tenía más de 18,000 líneas.

Cuando rehice el sitio web, escribí el CSS en alrededor de 300 líneas y se veía exactamente el 99% igual, y mi diseño respondía donde las 18,000 líneas originales de CSS ni siquiera eran para un diseño receptivo (aunque sí utilicé bootstrap y el original No).

Una buena analogía para responder a su pregunta es que es fácil construir una casa que se vea idéntica a otra, pero la madera que se usa para construir la nueva casa puede ser completamente diferente a la primera. Quizás un más fuerte, más ligero, super-madera. 🙂

Es casi imposible que cuando crea una aplicación que emula el comportamiento de otra aplicación, lo haga exactamente de la misma manera. Toda la funcionalidad puede ser la misma, pero la forma en que llegue a esa funcionalidad será diferente incluso si usa las mismas técnicas. Es el mismo concepto cuando se trata de todo tipo de otros productos. Piensa en los autos. Hay toneladas de automóviles diferentes y diferentes marcas de automóviles. Todos tienen diferentes usos de nicho, pero todos tienen el mismo objetivo principal de llevarlo de un lugar a otro y todos lo realizan. La forma en que construyen el automóvil es lo que los hace diferentes y lo mismo se aplica a las aplicaciones. Dos aplicaciones podrían ser aplicaciones de mensajería instantánea y verse exactamente igual a los ojos, pero una podría tener una arquitectura mucho más escalable que la otra para que una pudiera manejar el estrés de muchos más usuarios que la otra.

Dos cosas:

  1. Los juegos simples tienden a tener miles de líneas de código.
  2. incluso si dos fragmentos de código terminan siendo lo mismo, no ha copiado el código si lo reinventó independientemente. Sin embargo, probar esto es el problema.

Si tiene un programa de miles de líneas, es poco probable que lo escriba de la misma manera que otra persona. De hecho, es poco probable que lo escriba de la misma manera si lo hace dos veces con seis meses de diferencia.

Mucho dependerá de lo que apuntes inicialmente como la unidad comprobable mínima viable. Luego, en el orden en que agrega funcionalidad adicional. Mucho dependerá de qué cosas flexibilices y qué cosas solo se doblen hasta donde creas que necesita el diseño actual. Mucho dependerá de lo que comió en el desayuno en una mañana en particular.

Se podría crear una aplicación con múltiples códigos diferentes.

así que si sabe qué funciones sirve esa aplicación y qué GUI proporciona, puede imitar fácilmente cualquier aplicación sin copiar el código.

para eso lo que necesitas es lógica con conocimiento de codificación.

La misma lógica no significa el mismo código. entonces su clon lógico

  • ¿Cuál es la última película que viste?
  • ok, haz un resumen

¿Cuáles son las posibilidades de que su resumen sea idéntico a otra persona palabra por palabra? Diría que bastante bajo, incluso difícil, es la misma historia.

No creo que a nadie le preocupe no copiar el mismo código por error.

No solo eso, sino que la codificación es como la escritura a mano también. Después de trabajar durante años con los mismos desarrolladores, podría decir quién escribió qué, incluso si todos tenemos el mismo estándar (nombres de variables, espaciado y otros)

Aunque no preguntaste esto, hacer clones / imitaciones de aplicaciones no es realmente una buena idea. Incluso si el código es diferente, en algunos casos podría ir a la corte.

El tribunal declara que el clon de Tetris viola los derechos de autor, grandes implicaciones para los juegos derivados

Sabes que no estás copiando el código, al no copiar el código.

Digamos que se te ocurre una manera de hacer que un personaje de Pac-Man se mueva, y yo también. Lo más probable es que lo hagamos de diferentes maneras. Si no lo hacemos, lo hacemos de la misma manera, eso está totalmente bien.

Está bien hacer el mismo código que cualquier otra persona, aunque digamos que tienes un juego de 10,000 líneas (es un juego pequeño), entonces las probabilidades de que tú y yo escribamos lo mismo son astronómicamente pequeñas.

No nos preocupamos por hacer que el código sea único, simplemente escriba el programa de la mejor manera que sepa. Lo más probable es que tenga bits similares a otros códigos escritos por otra persona, pero eso está totalmente bien.

Como novato novato en Python / Ruby (aproximadamente un mes de clase de principiante), puedo decirle con seguridad que hay un millón de formas de realizar tareas aparentemente triviales, algunas más eficientes que otras. ¡Podría decirle a la computadora que dibuje, píxel por píxel, una L, o podría usar un comando específico, ingresar una X y una Y, y tener una L en la pantalla en una fracción de una fracción del tiempo!

Hay un millón de formas diferentes de organizar una fiesta, pero, con algunos principios rectores, puede utilizar cada uno para lograr exactamente el mismo resultado. Nunca hay una respuesta correcta para una tarea.

More Interesting

¿Cuáles son las herramientas y tecnologías utilizadas para el desarrollo de juegos en línea?

Si tuviera que dejar un mensaje para las civilizaciones futuras que durarían millones o miles de millones de años, ¿cómo lo haría?

¿Cómo revolucionará la impresión 3D la fabricación?

¿Qué se necesitaría en la tecnología de la vida real para hacer que las gafas de sol de Kurt Russell tengan visión nocturna, como se muestra en Furious 7?

¿Qué computadora es mejor para la programación, una computadora para juegos, una computadora de negocios o una computadora para estudiantes / entretenimiento?

¿Es técnicamente posible que la tecnología humana actual destruya permanentemente la biosfera de la Tierra? ¿Por qué o por qué no?

¿Cómo sería si no hubiera Internet, redes sociales, computadoras, dispositivos, software, aplicaciones y teléfonos móviles?

¿Cuál es la tecnología 1 que impulsará la exploración espacial?

¿Cómo funcionan las radios?

¿Debería la tecnología de robots subsidiar al menos un porcentaje de la fuerza laboral que reemplaza?

¿Cómo han cambiado las nuevas tecnologías la organización de las empresas?

¿Es posible que India use la tecnología para construir Iron Man o RoboCop en la frontera para minimizar las bajas?

¿Cuáles son los mejores dispositivos tecnológicos por debajo de $ 200?

¿Cuáles son algunas de las tecnologías prometedoras que desearía tener más fondos?

¿Cómo se generan los mapas de cobertura de telefonía celular?