• Android için kendi messenger'ımızı yazıyoruz. Bir elçiyi gerçekten anonim hale getirme. Bu fikre nasıl ulaştık?

    Ve bir çitin arkasında, URL'ler yerine "anahtar kelimelerin" bulunduğu harika bir özel İnternet'i vardı: bir web sayfasının adresi ile bir reklamdaki satın alınan anahtar kelime arasındaki bir şey. Şirketler, tıpkı bugün alan adları için rekabet ettikleri gibi ilginç anahtar kelimeler için de rekabet ediyorlardı ve reklamlar şu şekilde görünüyordu: "Bizi World Wide Web'de www.example.com adresinden ziyaret edin veya AOL Anahtar Kelimesini yazın: "bankacılık"."


    Tarih tekerrür etme eğilimindedir. Artık America Online'ın rolü ana haberciler tarafından oynanıyor: hepsi çitlerin arkasında, birbirleriyle uyumsuz, hepsi kendi anahtar kelimelerini icat ediyorlar, kullanıcıyı kapmak ve asla bırakmamak istiyorlar. Şirketler açıklıkla ilgilenmiyor: Daha büyük oyuncular kullanıcıları daha küçük olanlarla paylaşmak istemiyor, daha da azı açık hale geliyor. Sonuç olarak ikisi de aynı şirkete ait olmasına rağmen WhatsApp'tan Facebook Messenger'a bile mesaj göndermek imkansız hale geliyor. Ve kullanıcılar, soyut açıklığın üzerinde güvenilirliğe ve rahatlığa değer veriyor, ancak çoğu kişi, örneğin bazı arkadaşlarının Telegram'da, bazılarının WhatsApp'ta ve ebeveynlerin Skype'ta olmasından rahatsız oluyor.


    Ancak ne yazık ki bugün hiç kimse açık internetin rolünü oynamıyor. Durumu değiştirmek istiyorum. Eğer XMPP bunu yapamıyorsa, belki başkası yapabilir? Ve işte Tinode hakkında bir hikaye.

    Tinode nedir?

    Tinode, Github'da bulunan tamamen açık kaynaklı bir mesajlaşma aracıdır. Tinode tabanlı ticari uygulamaların oluşturulmasını kolaylaştırmak amacıyla tüm istemci uygulamaları (ReactJS ve Android) Apache 2.0 kapsamında lisanslanmıştır; sunucu GPL 3.0 altındadır. Projenin amacı, hem kullanıcılar hem de operatörler için basit ve kullanışlı birleştirilmiş bir mesajlaşma sistemi oluşturmaktır. Yüklendi - ve her şey MySQL veya Nginx gibi çalışıyor. Uzun vadede projenin hedefi, Android'in cep telefonları için işletim sistemleriyle ilgili olarak yaptığını anlık mesajlaşma programlarıyla ilgili olarak tekrarlayarak mevcut özel anlık mesajlaşma programlarına açık bir alternatif yaratmaktır.

    O ne yapabilir?

    Birden fazla cihazı destekler.

    Herkesin bir akıllı telefonu vardır, bazen birden fazla, ayrıca ana bilgisayardan bir web uygulamasını kullanmak genellikle daha uygundur. Bu nedenle birden fazla cihazın desteklenmesi, projenin ana mimari kararlarını belirleyen ana gereksinimlerinden biriydi. Bir kullanıcı yeni bir cihazdan giriş yaparsa WeChat'teki gibi sıfırdan başlamasını istemezsiniz. Bu, hem adres defterinin hem de mesajların uygulanan sunucuda saklanması gerektiği anlamına gelir.


    Açıkçası, kullanıcı bilgilerinin bir sunucuda saklanması herkes için uygun değildir, çünkü istenmeyen erişim riskleri yaratır: farklı yerlerde ne kadar çok veri kopyası saklanırsa, bir şeylerin ters gitme olasılığı da o kadar yüksek olur. Bu amaçla geçici mesajların ve mesajların müşteriye teslim edildikten sonra sunucudan silinmesi imkanı sağlanmaktadır. Teknik olarak, kişileri sunucuda kalıcı olarak saklamama olasılığı da vardır - istemci bunları bağlantı (oturum açma) sırasında sunucuya gönderir, ardından oturum kapatıldıktan sonra silinir. Ancak yazarlar bunun pratik olarak zor olduğunu düşündüler ve yapmadılar.

    Çevrimiçi durum

    Kullanıcının çevrimiçi/çevrimdışı durumunun anlık mesajlaşma programlarında yayınlanması normal kabul edilir, ancak bunun uygulanması çok zor bir özelliktir. Tahmin edilebileceği ve güvenilir bir şekilde “sadece çalışması” gerekiyor. Operasyonun güvenilirliği, bazı XMPP uygulamalarında uygulandığı gibi, istemcide durum oluşturulmasını ortadan kaldırdı. Tinode durumunda, sunucu bir çevrimiçi durum oluşturur ve bunu adres defterine gönderir; bu da yine kişilerin sunucuda saklanmasını ve bunların istemci uygulamalarıyla senkronize edilmesini gerektirir.

    Protokolün basitliği

    Protokolü, öğrenme eğrisinin düz olmasını sağlayacak şekilde hazırlamak istedim; başlamak için her şeyi bilmenize gerek yok. Şartnamenin oldukça kompakt olduğu ortaya çıktı: 10 istemci isteği, 5 sunucu yanıtı. Örneğin, yalnızca 200'den fazla sayfayla karşılaştırıldığında çekirdek Uzantıları saymazsak XMPP neredeyse peçeteye yazılmış bir nottur.


    Veri sunumu ağ protokolünden ayrılmıştır. Protokol yalnızca belirli bir veri yapısını gerektirir ancak ağ üzerinden herhangi bir şekilde iletilmesini gerektirmez. Artık sunucu, websocket üzerinden JSON'u ve TLS'li ve TLS'siz uzun yoklamanın yanı sıra TCP üzerinden gRPC'yi destekliyor. gRPC desteği, Python'da bir metin istemcisi yazmak da dahil olmak üzere bir geliştirici tarafından iki hafta içinde uygulandı. Mesaj Paketi veya Noise gibi diğer veri formatları ve protokolleri için desteğin eklenmesinin çok daha fazlasını gerektirmesi olası değildir.

    Genişletilebilirlik

    Bir yandan her şeyin hemen çalışmasını istiyorum, böylece ana işlevsellik kutudan çıktığı anda WhatsApp ve Telegram ile karşılaştırılabilir. Öte yandan insanların farklı ihtiyaçları var ve işlevselliği genişletebilmeniz gerekiyor. Dengeyi bulmak, monolitik bir mimari ile mikro hizmetler arasında seçim yapmaya benzer: Değişmez bir monolite sahip olmak arzu edilmez ve benzer şekilde, yönetimi ayrı bir görev haline gelen bir mikro hizmetler hayvanat bahçesine sahip olmak kötüdür.


    İşlevselliğin ana, ağ ve yardımcı olmak üzere üç bölüme ayrılmasına karar verildi. Bunlardan en önemlisi, Tinode'un ana işlevini (mesajları iletme) gerçekleştirmesine olanak tanıyan şeydir. Ağ - iletilen verilerin formatı ve ağ protokolü gibi sunucularla etkileşimin işlevselliği. Yardımcı - birinin yerel sorununu çözen, örneğin belirli bir veritabanını arka uç veya bir tür yetkilendirme yöntemi olarak destekleyen, ancak diğer sunucuları veya kullanıcı uygulamalarını hiçbir şekilde etkilemeyen bir şey. Ana işlevsellik ana kodda uygulanır. Mümkün olduğunda uyumsuz sunucuların oluşturulmasını önlemek için ağ işlevselliği ayrılmış ancak aynı zamanda ana depoda da saklanmıştır. Yardımcı olan, eklentiler - derlenmiş Go arayüzleri (farklı veritabanları desteği, farklı yetkilendiriciler, anında bildirimler, e-posta veya telefonla doğrulayıcılar, captcha desteği vb.) ve gRPC uç noktaları (sohbet robotu ve arama arayüzü) şeklinde uygulanır.

    Diğer

    • Bir hesabı bir telefon numarasına, e-postaya veya başka bir şeye bağlama olanağı vardır, ancak bu bir zorunluluk değildir.
    • Tahmin edilmesi zor ve dolayısıyla spam göndermesi zor olan kullanıcı kimlikleri.
    • WeChat'teki gibi kişi aramayı uygulamanıza (ve WeChat gibi, messenger'da bir flört hizmeti oluşturmanıza) veya kuruluşu Slack'teki gibi bölümlere ayırmanıza olanak tanıyan etiketler.
    • Kullanıcıları kayıt olmadan bağlama yeteneği, örneğin sohbet yoluyla bir destek hizmeti düzenlemek için gereklidir.
    • Arayüz ve sohbet robotlarını bağlama örneği.
    • Telegram'daki gibi kanallar oluşturma planları.

    Neden Gitmeliyiz?

    Messenger sunucusu aslında bir yönlendiricidir: bir kanaldan mesaj alır, onu bir şekilde işler ve ardından onu başka bir kanala veya kanallara iletir. Go (Erlang gibi, ama bu başka bir hikaye) böyle bir işlevsellik yaratmak için idealdir çünkü... İş parçacıklarını organize etmeyi ve aralarında veri alışverişini verimli ve basit hale getiren goroutine ve chan ilkellerini içerir.


    Elbette bir yönlendirici hem C/C++ hem de Java dilinde yazılabilir. Ancak, diğer her şey eşit olduğunda, kod büyük olasılıkla daha karmaşık hale gelecek ve kilitlenmeleri önlemek için daha fazla çaba gerektirecektir.

    Sonra ne?

    Federasyon

    Tinode'un önümüzdeki yılki ana görevlerinden biri federasyon için bir platform oluşturmak. Böylece herkes, tıpkı e-postada olduğu gibi, başka herhangi bir sunucuyla mesaj alışverişinde bulunabilen kendi Tinode sunucusunu çalıştırabilir. Sunucu kümelemesi zaten mümkündür. Sunucu ve istemciler arasındaki ağ alışverişi, harici bir gözlemci için basit HTTPS trafiğinden pek ayırt edilemeyen TLS websocket aracılığıyla gerçekleşir.


    En azından başlangıçta genel DNS muhtemelen kullanılacaktır. Ancak gelecekte sohbet sunucularının aranması, Bittorrent'te yapıldığı gibi, dağıtılmış bir karma tablosu olan DHT kullanılarak yapılacak.


    Ayrıca XMPP'nin sıklıkla eleştirildiği sorunlardan da kaçınmak isterim. Örneğin, XMPP sunucuları çok konuşkandır. XMPP istemcisinin adres defterindeki her kişiye ayrı ayrı çevrimiçi bildirimler gönderdiği iletilerin yarısına kadar kopyalar vardır.

    İtibar ve dağıtılmış karar alma

    Mesajlaşma sistemleri en çok e-postaya benzer. Bildiğiniz gibi e-postaların önemli bir kısmı spamdır. Başkalarının hatalarını tekrarlamak istemezsiniz, bu nedenle spam'i sınırlayan mekanizmalar derhal sisteme yerleştirilmelidir. Sorun henüz tam olarak çözülmedi ancak genel bir yön var:

    • Gönderen sunucunun kriptografik kimliği.
      Başlangıçta SMTP, gönderenin kimliğinin belirlenmesini hiçbir şekilde içermiyordu. Bir daha bu tırmığın üzerine basma. İletişim kurmak isteyen her sunucu bir kriptografik sertifika ile temsil edilecektir. “Evet, şimdi 100.500 sertifika oluşturacağım ve her seferinde kendimi yeni bir temiz sunucu olarak tanıtacağım” diyorsunuz. Ve haklı olacaksın. Bu nedenle bir sonraki nokta.
    • Dağıtılmış itibar muhasebesi.
      Yeni, bilinmeyen bir gönderen sunucu kapıyı çaldığında, bilinen sunuculardan yeni sunucunun derecelendirmesini bildirmelerini isteyen bir talepte bulunacağız. Ve cevaba bağlı olarak, örneğin yeni sunucunun bize mesaj gönderme hızını ayarlayacağız.

    Dağıtılmış karar verme ve itibar muhasebesi sistemine kuşbakışı bakarsanız blockchain ile benzerliklerini fark edeceksiniz. Blockchain'in (ancak kripto para biriminin değil) dağıtılmış bir itibar sistemi oluşturmak için temel olarak kullanılması mümkündür, ancak nasıl olacağı henüz açık değildir.

    Şifreleme

    Peki, bugünlerde mesajların şifrelenmesi olmadan ne yapacağız? İki kişi arasındaki sohbetler büyük olasılıkla OTR şifreli olacaktır. Grup sohbetlerinde durum hala belirsiz. Grup sohbetleri için bilinen tüm şifreleme şemalarının ya önemli dezavantajları vardır ya da hantaldır ve uygulanması zordur. Ayrıca grup sohbetlerini şifrelemenin ne kadar önemli olduğu da pek belli değil: “Bir sırrı iki kişi biliyorsa artık sır değildir, üç kişi biliyorsa zaten çarşıdır.”


    Bunun hakkında ne düşünüyorsun?

    Sitenin geliştirilmesi için yardım edebilir ve bazı fonları aktarabilirsiniz.

    

    Yorumlar (205):

                        • Saflığınız haddinden fazla.


                          Metni kalın, italik yapabilirsiniz

                          Bunu en az bir kez kendiniz yapmayı denediniz mi?

                                • Xmpp sunucusunu değiştirmeniz gerekiyor

                                  Diskosuna (upload.jabberon.ru) göre HTTP Dosya Yükleme özelliği olan jabberon.ru kullanıyorum. Conference.jabber.ru'da her şey söylediğiniz gibi çalışıyor.


                                  Ancak konferans.jabber.ru'daki sohbete dosya gönderecek bir düğmem yok!

    Akıllı telefonlar veya bir web sitesi için bir mesajlaşma programı geliştirmek başarılı bir başlangıç ​​olabilir. Messenger'lar halihazırda dünyadaki indirme sayısı açısından ilk sırada yer alıyor.

    Başka bir mesajlaşma uygulaması oluşturmaya değer mi?


    Her kullanıcının telefonunda yüklü iki ila beş anlık mesajlaşma uygulaması vardır. Hepsi bir dereceye kadar alışkındır.

    Zamanla bazı mesajlaşma uygulamaları liderlik pozisyonlarını kaybederek yerini yenilerine bırakıyor. Böylece Skype, birkaç yıldır işgal ettiği birinci sıradan bir yıl içinde dördüncü sıraya yükseldi. Telegram beşinci sırada yer alıyor. Ancak aynı Telegram pazarı hızla fethettiği için bu da geçici bir durum gibi görünüyor. 2017'de yeni bir trend ortaya çıktı: halka açık kanallar ve sohbetler. Varlıkları yeni kullanıcıları cezbetmekte ve anlık mesajlaşma programlarını esasen sosyal medyaya dönüştürmektedir. Belki de Telegram'ın popülaritesinin artmasının nedeni buydu.

    Messenger popülerlik derecelendirmesi

    Kaynak vc.ru

    Messenger kullanıcı sayısındaki artışa ilişkin istatistikler, mesajlaşma uygulamalarının potansiyele sahip olduğunu gösteriyor. Ancak bir startup kurarken rekabete hazırlıklı olmanız gerekir. İOS veya Android için bir mesajlaşma programının geliştirilmesi, sorunun doğru formülasyonu ve araçların seçimi ile başlar. Bu şekilde kullanıcıların ihtiyaçlarını karşılayacak bir uygulama elde edeceğiz.


    Kullanıcılar arasında talep gören bir haberci nasıl oluşturulur?

    Başlangıçta, haberciler ya sohbetler olarak, örneğin WhatsApp olarak ya da çağrılar için bir uygulama olarak - Skype, Viber olarak oluşturuldu. Daha sonra habercilere başlangıçta orada olmayan işlevler eklemeye başladılar. Böylece WhatsApp sesli arama, ardından video işlevlerini ekledi. Ardından açık API'ler, botlar, maskeler, durumlar, ödeme kabulü ve genel kanallar ortaya çıktı. Ancak messenger'ın milyonlarca kullanıcısı varken yeni işlevler eklemek veya yapıyı değiştirmek zordur. Örneğin WhatsApp'ın hâlâ bir API'si veya bot'u yok.

    Android veya iOS'ta mesaj göndermek için bir uygulama oluştururken temel zorluk, mimariyi geliştirmektir. Uygulama yapısı, yeni özelliklerin zahmetsizce eklenebileceği şekilde tasarlanmalıdır.

    Bir mesajlaşma programı geliştirirken, onu yalnızca diğer uygulamalarda mevcut olanlara değil, aynı zamanda gelecekte talep edilebilecek olanlara da dayandırıyoruz.

    Messenger mimarisini geliştirmeye yaklaşımımız

    Mimari tasarım ve geliştirmeye yönelik yaklaşımların çoğu modüler olma eğilimindedir. Ancak modülerlik farklıdır ve modüllerin kendisi çok büyük ve yekpare olabilir.

    Mimariyi Temiz mimari ilkelerine göre tasarlıyor ve geliştiriyoruz.

    Robert Martin tarafından tanımlanan temiz mimari, esnek ve ölçeklenebilir bir sistem tasarlamanıza olanak tanır.

    Bu, modern yazılımlarda yaygın bir uygulamadır ancak herkes Temiz mimariye ulaşamaz. Çalışmalarımızda bir takım spesifik ilkelere bağlı kalıyoruz ve beklenen sonucu elde ediyoruz. Resimde Google'ın sunduğu yeni mimari gösterilmektedir. Bu yaklaşımı ve kendi iyileştirmelerimizi kullanarak Android'de temiz bir mimari uyguluyoruz.


    Esneklik, ölçeklenebilirlik ve test edilebilirlik

    Çalışırken mimarinin otonom katmanlara bölünmesine dikkat ediyoruz. Daha sonra iş mantığı, sunum ve veri nesneleri ayrılır ve birbirlerinden bağımsız olarak değişebilir. Sistemin boyutu ne olursa olsun bu yaklaşım esnekliğini, ölçeklenebilirliğini (fonksiyon sayısını ölçeklendirmek) ve test edilebilirliğini korur.

    Sadece kodu değil sistem altyapısını da ölçeklenebilir hale getiriyoruz.

    Uygulama Performansı

    Çoğu zaman ekiplerin popüler hale gelen bir programlama dilinin peşinde olduğu görülür. Müşterinin ürününü geliştiriyorlar ama süreç içerisinde dili yanlış kullandıklarını fark ediyorlar. Herhangi bir dilin ve aracın tüm artılarını ve eksilerini anlamanız gerekir. Etkili bir sistem oluşturmak için şu anda popüler olan dili değil, en uygun dili kullanmanız gerekir.

    Çalışma sırasında müşterinin görevini düşünürüz ve bunu akılda tutarak araç seçimine yaklaşırız.

    Kural olarak PHP'de programlıyoruz. Bu programlama dili Whatsapp, Facebook, Stackoverflow'ta kullanılmaktadır. PHP performans açısından diğer dillerden daha aşağı değildir ve yüksek yüklere dayanabilir. Bu dilin avantajı, bir görev tamamlandıktan sonra sunucu kaynaklarının serbest kalması ve uygun şekilde oluşturulmuş bir mimari ve iyi bir teknoloji yığınının dilin eksikliklerini kapatmasıdır.

    PHP'de bir proje geliştirmenin maliyeti Java ve Python gibi dillere göre birkaç kat daha ucuzdur. Aynı zamanda uygulamanın performansı da düşük değildir.

    Araçları seçerken, bunlardan birinin veya diğerinin bir sorunu ne kadar etkili çözebileceğine odaklanıyoruz. Aslında araçları mimariye uyarlıyoruz, tersini yapmıyoruz.

    Çok sayıda kullanıcı ve ağır yüklerle çalışma

    Çalışmalarımızda NodeJS platformunu kullanıyoruz. Deneyimlerimiz bu platformun sohbet ve mobil uygulamalar oluşturmaya uygun olduğunu gösteriyor. NodeJS iyi tasarlanmış olup yüksek yüklü sistemler oluşturmanıza olanak sağlar. NodeJS'deki sohbet, kutudan çıktığı haliyle 10.000 bağlantı yükünü kaldırabilir.

    Bu platform için Android veya iOS için bir mesajlaşma programı geliştirmek, Java Script kullanımını gerektirir. Bu dil popüler olduğundan geliştirici bulmak sorun değil.

    Yeniden düşünün - bu NoSQL DB'yi rakiplerinden daha üretken olduğu için kullanıyoruz. RethinkDB'de, ReQL adı verilen sorgu dili çeviricisi sunucu düzeyinde uygulanmaz, ancak istemci uygulamasının yazıldığı dile etki alanına özgü bir dil olarak yerleşiktir.

    Veritabanı tabloları, her düzeyde iç içe yerleştirmeye izin veren JSON belgelerini depolar. Her belgenin üst tablosu için benzersiz bir birincil anahtar "kimliği" vardır. Anahtara atıfta bulunarak bir belge alıyoruz. Her ReQL sorgu fonksiyonu, zincirdeki bir önceki fonksiyondan elde edilen veriler üzerinde çalışır. Bu, yüksek yüklü projeler için daha esnek bir mimari oluşturmanıza ve veri yapılarının karmaşıklığını düşünmenize olanak tanır.

    NoSQL DBMS'nin rakibi MongoDB'dir. Bu platform piyasada popülerdir ancak popülerlik her zaman başarının anahtarı değildir. MongoDB'nin bir takım sorunları vardır: belgeleri silmek disk alanını temizlemez, bu nedenle uygulamanın, belgelerin (nesne dosyalarının) sık sık silinmeyeceği şekilde oluşturulması gerekir. MongoDB ayrıca belgeler üzerinde çok sayıda toplu işlemle de iyi çalışmaz; bu, yüksek yüklü bir sistem oluşturma kurallarına aykırıdır.

    Yüksek yüklü projeler oluştururken temel sorun, bir mimari oluşturmak ve daha sonra sistemin iş mantığını buna göre ayarlamaktır. Böyle bir proje her zaman ağır yüklerle baş edemez. Bu nedenle tam tersini yapıyoruz: Tüm sistemin iş mantığını çözüyoruz ve ardından bunun için etkili bir mimari oluşturuyoruz. Böyle bir uygulamaya yeni işlevler eklenebilir. Performansını kaybetmez ve yüksek yüklerden korkmaz.


    Messenger arayüzü geliştirme

    Kullanıcıya nasıl çalışılacağı açık olmalı ve çalışması uygun olmalıdır. Bu nedenle, kullanışlı ve öngörülebilir olduğundan sıklıkla yerel tasarımı kullanmanızı öneririz. Uygulama farklı cihazlarda aynı şekilde davranır. Kullanıcı tanıdık unsurları görür, bunları nasıl kullanacağını bilir ve messenger'ın nasıl kullanılacağına dair hiçbir sorusu yoktur.

    Bir tasarım geliştirirken aşağıdakiler önemlidir:

      Henüz hiçbir şeyin gerçekleşmediği sohbetlerin, ekranların, bölümlerin boş halleri üzerinde çalışın. Bu, kullanıcıya hangi eylemin yapılması gerektiğini açıkça belirtecektir.

      Süreç geri bildirimi. Mesaj göndermek ve dosyaları indirmek zaman alır. Bu noktada kullanıcıya işlemin devam ettiğini göstermek önemlidir.

      Tüm olası hatalar, örneğin İnternet kaybolursa, kullanıcının bir şeylerin ters gittiğini anlaması gerekir.

      Bir telefon numarasını doğrulamak için, doğrulama kodu içeren bir SMS'in yeniden gönderilmesine ilişkin bir süre sınırı belirleyin; çünkü mesaj henüz ulaşmayabilir ve kullanıcının, kodu altı kez yeniden göndermek için tıklaması için zamanı olacaktır.

      Büyük bir dosya gönderirken kullanıcıyı mobil İnternet kullandığı konusunda uyarın.




    Sohbet içi kolaylık ve saçma hataların önlenmesi

    Aramaları belirli bir sohbet içinde uygun şekilde düzenlemek önemlidir. Beslemede rastgele gezinmeye gerek kalmadan yazışmalarda, bir belgede, fotoğrafta veya videoda doğru anı hızla bulun.

    Sesli mesaj göndermeden önce kullanıcının bunları dinleyebilmesi önemlidir. Ayrıca hatayı düzeltme veya istenmeyen mesajı kaldırma seçeneği de bulunmalıdır. Bir iPhone veya Android mesajlaşma uygulaması oluşturmak, bunların ve diğer nüansların dikkatle değerlendirilmesini gerektirir.

    Mahremiyet

    İnternette, messenger'ı hacklemenize ve kişisel yazışmalar almanıza olanak tanıyan programlar bulabilirsiniz. Geliştiricilerin ilk görevi, bir telefon numarasına atıfta bulunmadan ve bir kişiyi bir şekilde tanıma yeteneği olmadan bile tam bir anonimlik sağlamaktır. İkinci görev ise hacklenme riskini ortadan kaldırmaktır.

    Burada nüanslar var. Örneğin, tam bir anonim sohbet için, muhatapların belirli özelliklere (telefon numarası, isim, konum) atıfta bulunmadan kimin kim olduğunu anlamaları gerekir. Bunu yapmak için herkesin kullanabileceği, ancak iki kez tekrarlanmayacak tek seferlik bir şifre kullanmanız gerekir. İnsanları böyle bir sohbete davet etmek de yalnızca bir kez çalışan ve yalnızca kişinin kendisi tarafından ayarlanan bir "anahtar" kullanılarak gerçekleşir.

    Ekran görüntüsü koruması. Gelen bildirimlerin şifrelenmesi. Gereksiz onaylara gerek kalmadan mesajları hızlı bir şekilde silme yeteneği.


    Kendi messenger'ınızı yaratmanın maliyeti nedir?

    Messenger geliştirmenin fiyatı, uygulama üzerindeki çalışmanın ne kadar süreceği ile ilişkilidir. İşlevsellik ne kadar karmaşıksa geliştirme maliyeti de o kadar yüksek olur. İOS, Android veya bir web sitesi için bir mesajlaşma aracı geliştirmenin nihai fiyatını ancak hangi sorunların çözülmesi gerektiğini anladıktan sonra belirleyebiliriz.

    Promosyon ve destek maliyeti

    Android veya iOS için bir mesajlaşma aracı geliştirmek ilk aşamadır. Bu kurumsal bir sohbet değilse, mesajlaşma programının tanıtılması gerekir. Bunu yapmak için pazarlama bütçenize belirli bir miktar eklemeniz gerekir. Bu içerir:

      ASO tanıtımı (App Store Optimizasyonu), bir mobil uygulamayı optimize etmek için yapılan çalışmalar bütünüdür. Yani, uygulamanızın aramada görünürlüğünü en üst düzeye çıkarmak için başlığın (ad), anahtar kelimelerin (anahtar kelimeler), açıklamaların (açıklama) doğru bileşimi

      Google Play ve App Store mağazalarına yerleştirme için ödeme.

    Başlatıldıktan sonra uygulamanın geliştirilmesi ve güncellenmesi gerekir:

      Hataları ortadan kaldırın ve kullanıcı şikayetlerine yanıt verin

      Yeni özellikler ekleyin.

    Android veya iPhone'da mesaj göndermek için uygulama oluşturmaya nereden başlanır?

    Özel bir mesajlaşma programının geliştirilmesi, görevin belirlenmesiyle başlar.

    Bize yazın veya arayın, bir toplantı ayarlayacağız, sorunu tartışacağız ve Android ve iOS için popüler bir mesajlaşma programının nasıl oluşturulacağı konusunda en uygun çözümü bulmanıza yardımcı olacağız.

    Bilgi güvenliği konusunda pratik olarak takıntılı olan ekibimiz Eleet'te birçok ilginç çözümü hayata geçirdi.

    Aşağıda çevrimiçi güvenliğinizi önemli ölçüde etkileyen sekiz ürün özelliği bulunmaktadır. Bu fikirlerin bazıları tamamen benzersizdir: bunu yalnızca Eleet Private Messenger sunar. Diğerleri şu ya da bu şekilde rakipler arasında bulunabilir, ancak yine de size onlardan bahsedeceğiz: sonuçta önemli olan Eleet geliştirme ekibi tarafından oluşturulan karmaşık sistemdir.

    Öyleyse başlayalım.

    1. Telefonla bağlantı yok

    İlki ve en önemlisi. Bugün, yüksek düzeyde güvenlik iddiasında olan birçok anlık mesajlaşma programı var, ancak... onlarla çalışmak neredeyse her zaman bir cep telefonu numarası kullanarak kaydolmakla başlar. Dağıtılmış bir ağ ağı üzerinden çalışan FireChat'in bile bu dezavantajı vardır.

    Bizce bundan sonra anonimlikten bahsetmenin artık bir anlamı yok. Öyle ya da böyle, birine telefon numaranızı verdiniz; eğer numara yanlış ellere geçerse, kimliğinizi ve tam konumunuzu belirlemek çok kolay olacaktır.

    Günümüzde çok popüler olan SMS yoluyla yetkilendirmeyi atlamanın banal yöntemini unutmayalım: yinelenen bir SIM kart oluşturmak. Mobil operatörler bunu başkasının yararına kolaylıkla yapabilirler. Evet, kısa mesajla gönderilen kodla meşhur "iki faktörlü kimlik doğrulama" çoğu insanın düşündüğü kadar güvenilir değil.

    Bu seçeneklerin herhangi birinde artık şifrelemenin ne kadar iyi olduğu, şifrelerin güvenilir olup olmadığı önemli olmayacaktır... bu nedenle Eleet messenger'da telefon numarasına göre yetkilendirme yoktur.

    2. Kişilikle bağlantısı yok

    Bu, uygulamanın belirli bir işlevi olmaktan çok, tutarlı bir şekilde uyguladığımız genel bir fikirdir ve doğal olarak önceki noktadan gelmektedir. Yani Eleet Private Messenger hesabınızın gerçek kimliğinizle hiçbir ilgisi yoktur. Messenger'ımızı kullanarak, Eleet bilgi alanında gerçek sizi kendinize bağlamanıza izin verecek hiçbir iz bırakmazsınız.

    3. Özel Kimlikler

    Hesabınızın takip edilemez olup olmadığından hâlâ emin değil misiniz? İyi: "ana" kimliğin tüm işlevlerine sahip ek bir özel kimlik oluşturun. Aynı zamanda, onunla ilişkili tüm veriler (kişiler, günlükler, içerik) ayrı olarak depolanacak ve özel kimlik silindiğinde ana hesapta herhangi bir iz bırakmadan kaybolacaktır.

    4. Çevrimiçi ortamda "parlamayın"

    Hoş küçük şeylerden biri: Messenger'ımızın kullanıcıları çevrimiçi varlıklarını tamamen gizleme fırsatına sahip. Hayır, sadece son giriş zamanının gizlenmesini kastetmiyoruz - tam teşekküllü "görünmezliği" kastediyoruz. Sosyal ağlarda pek çok kişi bunu kaçırıyor ve haberciler her zaman böyle bir fırsat sunmuyor.

    5. Gerçekten her şeyi silebilirsiniz

    Bu göründüğü kadar küçük değil. Çoğu çevrimiçi iletişim aracı, kendi tarafınızdaki günlükleri ve kişileri silmenize olanak tanır: ancak muhataplarınızın hem yazışmaları hem de kimliğiniz yine de olacaktır. Bu tür koşulların bilgi güvenliği gerekliliklerine uygun olduğunu söylemek zordur.

    Uygulamamızda bu sorun bulunmamaktadır. Kendinizi diğer kişinin kişi listesinden kolayca kaldırabilirsiniz. İsterseniz başka hiçbir kullanıcının sizinle iletişim kayıtları da olmayacaktır. Bu nedenle, hiç kimse örneğin uygunsuz yazışmalarla size şantaj yapamaz.

    Gerçek şu ki bu yalnızca ek bir güvenlik katmanıdır ve oluşturduğunuz sohbeti korumanın önemli bir unsuru değildir. PIN'in hatırlanması kolaydır ve herhangi bir cihazdan girilmesi kolaydır: bu, kural olarak, güçlü bir şifre hakkında söylenemez.

    PIN kodu bilgi güvenliğinde önemli bir rol oynamaz ancak kullanıcıların kendilerini daha da güvende hissetmelerine yardımcı olur.

    7. Özellikle gizli sohbetler

    Tipik olarak bilgi güvenliği söz konusu olduğunda odak noktası dış gözetimdir: saldırganlar, rakipler, yetkililer. Peki ya kendi muhataplarınıza tam olarak güvenmiyorsanız?

    Çok basit: Herhangi bir takma adı girerek onlarla anonim bir sohbet oluşturun. Bu sohbette iletişim kurduğunuz kişiler gerçek kimliğinizi asla bilemeyecek. Aynı zamanda sohbetin belli bir süre sonra “kendi kendini imha etmesi” de sağlanabilmektedir.

    8. Ve en ilginç şey!

    Doğal olarak en sevdiğimiz özelliği en sona sakladık. Eleet Private Messenger kullanıcıları “pin kodunu sil” ayarlayabilir. Ne olduğunu?

    Dışarıdan bakıldığında çok sıradan bir PIN kodu giriyormuşsunuz gibi görünecektir (altıncı paragrafta anlatılan gibi). Düzenli yetkilendirme tedbiri. Aslında, bu komutla Eleet tüm verilerinizi (yazışmalar, kişiler, gönderilen materyaller ve benzeri) anında silecektir. Ve zaten bildiğiniz gibi, ekibimizin "silme" derken kastettiği gerçek, kalıcı silmedir: hiçbir şey geri yüklenemez.

    Bu işlevin hangi durumlarda hayati önem taşıdığını listelemeyeceğiz: okuyucuların bunun için çeşitli seçenekleri hayal edebileceklerine inanıyoruz. Dedikleri gibi, “eğer ne demek istediğimizi biliyorsan.”

    Son olarak tekrarlıyoruz: Eleet Private Messenger, internette anonimliğin, her türlü kişisel verinin güvenilir şekilde korunmasının ve sanal kişisel alanın en önemli değerler olduğu kişiler tarafından yaratılmıştır. Geliştirme ekibinin tüm çabaları Eleet'i her düzeyde mümkün olduğunca güvenli hale getirmeye hizmet ediyor.

    Gördüğünüz gibi bu yönde zaten çok şey yaptık. Ve daha da fazlası uygulanacaktır.

    Uygulama geliştirme için müşteri isteklerini sürekli analiz ediyoruz. Bu nedenle kullanıcılar arası iletişime dayalı uygulamalara olan talebin artması dikkatlerimizden kaçmadı.

    Messenger'ınıza ek mantık ekleme yeteneği şeklinde bir özellik ile kendimizinkini bulduk. Örneğin, bir messenger'ı, reklamlar ve filtreler ekleyerek bir hizmet sipariş hizmeti haline getirin veya müşterilerin sorular soracağı ve uzmanlarınızın bir ücret karşılığında onlara tavsiyelerde bulunacağı bir danışmanlık ajansı başvurusu yapın.

    Bu fikir nasıl ortaya çıktı?

    Belirli bir dönemde, örneğin Telegram'da olduğu gibi sohbet robotlarına değil, insanlar arasındaki diyaloğa dayanan anlık mesajlaşma programlarına olan ilginin arttığını fark edemedik. Bu tür projelerin çekiciliğini anlamak gerekiyor.

    Diyelim ki, insanların kullanılmış malların satışına yönelik reklamlar yayınladığı bir Avito uygulaması yapmak istediğinizi varsayalım. Alıcı, feed'de gezinir veya ihtiyacı olan ürünü bulur, başvuruya yanıt beklemesine gerek kalmaz, hemen satıcıyla doğrudan diyalog kurar ve randevu alır. Hızlı, kullanışlı, çok fazla arama yapmadan ve WhatsApp veya Telegram'da kişi aramadan.

    İnsanlar arasındaki iletişime dayalı anlık mesajlaşma programlarının tüm avantajlarını fark ederek daha da ileri gitmeye karar verdik. Biz de şöyle düşündük: “Mesajcı katı sınırlara zorlanmayıp, çeşitli işlevleri bünyesinde barındırabilme yeteneğine sahip olursa ne olur?” Yeni bir kutulu çözüm elde edeceksiniz, yani "sunucunuza değişiklik olasılığı olan bir WhatsApp analogu yükleyin." Bu çözümün şüphesiz avantajı, sıfırdan geliştirildiğinde diğer stüdyolara göre açıkça daha düşük maliyetli olmasıdır (bir WhatsApp analogu için ortalama maliyet 45.000 ila 55.000 ABD Doları arasındadır). Bu, fikrinizi doğru fiyatla test etmenize ve projenin başarılı olup olmayacağına karar vermenize olanak tanır.

    Kutulu çözüm halihazırda neler içeriyor?

    • Telefon numarasına göre kayıt ve yetkilendirme
    • Kullanıcı profilinde tam adını girip fotoğrafını koyabilir
    • Kullanıcıların, kişilerin listesi
    • Diyalogların listesi
    • Sohbet Penceresi
    • Mesaj durumu

    Bu kutulu çözümün temel avantajı esnekliğidir. Tabanı bizden alıp, amaç ve hedeflerinize göre ona istediğinizi ekliyorsunuz. Örneğin, videoları ve fotoğrafları, haber akışını vb. görüntüleme.

    Uygulama mimarisi şuna benzer:

    • iOS ve Android uygulamaları için Objective-C ve Java
    • Node.js - mesajları gerçek zamanlı olarak almak için soket bağlantılarını tutar
    • Redis - gönderilecek mesajların bir yığınını saklıyoruz
    • Uygulamanın simge durumuna küçültülmesi durumunda anlık bildirimler göndermek için APN/FCM push sunucusunu kullanıyoruz
    • Bitrix.Mobil uygulama ekranları oluşturmaya ve esnek uygulama geliştirmeye yönelik çerçeve
    • MySQL - kullanıcıları, erişim rollerini, mesaj geçmişlerini ve özel uygulama verilerini depolamak için
    • 1C-Bitrix - messenger'ın idari yönetimi için

    Belirli görevlerle çalışma

    Arkadaşım Pavel kısa bir süre önce yardım için bize başvurdu. Toptancılar ve üreticiler için satışları artırma konusunda uzmanlaşmış bir danışmanlık ajansının sahibidir. Sorunu, danışmanlığı tamamladıktan sonra müşterinin asistanlarına danışmaya geçmesiydi. Bu sonuçta sunulan hizmetlerin kalitesine ve karlara da yansıdı: Asistanlarının hataları nedeniyle Pavel ayda 50-100 bin ruble kaybetti.

    O ve ben messenger'ı uygularken aşağıdaki değerleri alabileceği bir model bulduk:

    • Kalite kaybı olmadan danışmanlık hizmetlerini uzaktan şahsen sağlayın
    • En popüler 40 müşteri sorusuna video yanıtları hazırlayın ve bu yığından başka bir soru ortaya çıkarsa, ek işçilik maliyeti olmadan müşteriye videonun bağlantısını gönderin.
    • Asistan maaşlarından tasarruf edin
    • Servis kapasitesini artırın
    • Ana ürünün yeni satışlarında uygulama içi danışmaları hayranlık uyandırıcı bir etki olarak kullanın

    Konuştuktan sonra temel işlevlere ek olarak birkaç ek ekranın gerekli olacağı sonucuna vardık:

    1. Grup sohbeti (böylece müşteriler birbirlerinden "şarjlanır")
    2. Şirket hizmet tarifelerinin yer aldığı ekran

    Şirketin kurumsal tarzına uygun markalı bir tasarımın eklenmesi bir artıydı. Fiyatlarımızı dikkate aldığımızda uygulama 100 binden biraz daha pahalı çıktı üstelik bize bağlı kalmadan. Bitrix.Framework'e aşina olan herhangi bir PHP geliştiricisi bu değişiklikleri Pavel için yapabilir. Şu anda başvuru sonuçlandırılıyor ancak gelecekteki uygulamanın bağlantılı modellerini görebilirsiniz.

    Kalkınma beklentileri

    Messenger projemiz öncelikli olarak startup olması nedeniyle Müşteri Geliştirme formatında geliştiriyoruz. Projenin lansmanından bu yana geçen bir buçuk haftada 9 lisans satıldı. Paket çözümümüzü deneyen müşterilerimiz aşağıdaki yönlerde geliştirme önerdiler:

    1. sohbet pencerelerine çeşitli multimedya (fotoğraflar, videolar, dosyalar), aktif bağlantılar eklemek için bir fonksiyonun geliştirilmesi;
    2. tasarımın iyileştirilmesi üzerinde çalışmak;
    3. grup sohbetleri oluşturma.

    Bu projenin gelişimi hakkında ne düşünüyorsunuz? Aktif olarak işlevsellik eklemeye değer mi, yoksa herhangi bir programcının uygulamayı müşteri için özelleştirmesine izin verecek şekilde platformu esnek bırakmak daha mı iyi?

    Yeni kutulu teklifimizle ilgileniyorsanız, bana e-posta ile yazın. Aklınıza takılan her türlü soruyu yanıtlamaktan memnuniyet duyarım.

    Akıllı telefonlar veya bir web sitesi için bir mesajlaşma programı geliştirmek başarılı bir başlangıç ​​olabilir. Messenger'lar halihazırda dünyadaki indirme sayısı açısından ilk sırada yer alıyor.

    Başka bir mesajlaşma uygulaması oluşturmaya değer mi?


    Her kullanıcının telefonunda yüklü iki ila beş anlık mesajlaşma uygulaması vardır. Hepsi bir dereceye kadar alışkındır.

    Zamanla bazı mesajlaşma uygulamaları liderlik pozisyonlarını kaybederek yerini yenilerine bırakıyor. Böylece Skype, birkaç yıldır işgal ettiği birinci sıradan bir yıl içinde dördüncü sıraya yükseldi. Telegram beşinci sırada yer alıyor. Ancak aynı Telegram pazarı hızla fethettiği için bu da geçici bir durum gibi görünüyor. 2017'de yeni bir trend ortaya çıktı: halka açık kanallar ve sohbetler. Varlıkları yeni kullanıcıları cezbetmekte ve anlık mesajlaşma programlarını esasen sosyal medyaya dönüştürmektedir. Belki de Telegram'ın popülaritesinin artmasının nedeni buydu.

    Messenger popülerlik derecelendirmesi

    Kaynak vc.ru

    Messenger kullanıcı sayısındaki artışa ilişkin istatistikler, mesajlaşma uygulamalarının potansiyele sahip olduğunu gösteriyor. Ancak bir startup kurarken rekabete hazırlıklı olmanız gerekir. İOS veya Android için bir mesajlaşma programının geliştirilmesi, sorunun doğru formülasyonu ve araçların seçimi ile başlar. Bu şekilde kullanıcıların ihtiyaçlarını karşılayacak bir uygulama elde edeceğiz.


    Kullanıcılar arasında talep gören bir haberci nasıl oluşturulur?

    Başlangıçta, haberciler ya sohbetler olarak, örneğin WhatsApp olarak ya da çağrılar için bir uygulama olarak - Skype, Viber olarak oluşturuldu. Daha sonra habercilere başlangıçta orada olmayan işlevler eklemeye başladılar. Böylece WhatsApp sesli arama, ardından video işlevlerini ekledi. Ardından açık API'ler, botlar, maskeler, durumlar, ödeme kabulü ve genel kanallar ortaya çıktı. Ancak messenger'ın milyonlarca kullanıcısı varken yeni işlevler eklemek veya yapıyı değiştirmek zordur. Örneğin WhatsApp'ın hâlâ bir API'si veya bot'u yok.

    Android veya iOS'ta mesaj göndermek için bir uygulama oluştururken temel zorluk, mimariyi geliştirmektir. Uygulama yapısı, yeni özelliklerin zahmetsizce eklenebileceği şekilde tasarlanmalıdır.

    Bir mesajlaşma programı geliştirirken, onu yalnızca diğer uygulamalarda mevcut olanlara değil, aynı zamanda gelecekte talep edilebilecek olanlara da dayandırıyoruz.

    Messenger mimarisini geliştirmeye yaklaşımımız

    Mimari tasarım ve geliştirmeye yönelik yaklaşımların çoğu modüler olma eğilimindedir. Ancak modülerlik farklıdır ve modüllerin kendisi çok büyük ve yekpare olabilir.

    Mimariyi Temiz mimari ilkelerine göre tasarlıyor ve geliştiriyoruz.

    Robert Martin tarafından tanımlanan temiz mimari, esnek ve ölçeklenebilir bir sistem tasarlamanıza olanak tanır.

    Bu, modern yazılımlarda yaygın bir uygulamadır ancak herkes Temiz mimariye ulaşamaz. Çalışmalarımızda bir takım spesifik ilkelere bağlı kalıyoruz ve beklenen sonucu elde ediyoruz. Resimde Google'ın sunduğu yeni mimari gösterilmektedir. Bu yaklaşımı ve kendi iyileştirmelerimizi kullanarak Android'de temiz bir mimari uyguluyoruz.


    Esneklik, ölçeklenebilirlik ve test edilebilirlik

    Çalışırken mimarinin otonom katmanlara bölünmesine dikkat ediyoruz. Daha sonra iş mantığı, sunum ve veri nesneleri ayrılır ve birbirlerinden bağımsız olarak değişebilir. Sistemin boyutu ne olursa olsun bu yaklaşım esnekliğini, ölçeklenebilirliğini (fonksiyon sayısını ölçeklendirmek) ve test edilebilirliğini korur.

    Sadece kodu değil sistem altyapısını da ölçeklenebilir hale getiriyoruz.

    Uygulama Performansı

    Çoğu zaman ekiplerin popüler hale gelen bir programlama dilinin peşinde olduğu görülür. Müşterinin ürününü geliştiriyorlar ama süreç içerisinde dili yanlış kullandıklarını fark ediyorlar. Herhangi bir dilin ve aracın tüm artılarını ve eksilerini anlamanız gerekir. Etkili bir sistem oluşturmak için şu anda popüler olan dili değil, en uygun dili kullanmanız gerekir.

    Çalışma sırasında müşterinin görevini düşünürüz ve bunu akılda tutarak araç seçimine yaklaşırız.

    Kural olarak PHP'de programlıyoruz. Bu programlama dili Whatsapp, Facebook, Stackoverflow'ta kullanılmaktadır. PHP performans açısından diğer dillerden daha aşağı değildir ve yüksek yüklere dayanabilir. Bu dilin avantajı, bir görev tamamlandıktan sonra sunucu kaynaklarının serbest kalması ve uygun şekilde oluşturulmuş bir mimari ve iyi bir teknoloji yığınının dilin eksikliklerini kapatmasıdır.

    PHP'de bir proje geliştirmenin maliyeti Java ve Python gibi dillere göre birkaç kat daha ucuzdur. Aynı zamanda uygulamanın performansı da düşük değildir.

    Araçları seçerken, bunlardan birinin veya diğerinin bir sorunu ne kadar etkili çözebileceğine odaklanıyoruz. Aslında araçları mimariye uyarlıyoruz, tersini yapmıyoruz.

    Çok sayıda kullanıcı ve ağır yüklerle çalışma

    Çalışmalarımızda NodeJS platformunu kullanıyoruz. Deneyimlerimiz bu platformun sohbet ve mobil uygulamalar oluşturmaya uygun olduğunu gösteriyor. NodeJS iyi tasarlanmış olup yüksek yüklü sistemler oluşturmanıza olanak sağlar. NodeJS'deki sohbet, kutudan çıktığı haliyle 10.000 bağlantı yükünü kaldırabilir.

    Bu platform için Android veya iOS için bir mesajlaşma programı geliştirmek, Java Script kullanımını gerektirir. Bu dil popüler olduğundan geliştirici bulmak sorun değil.

    Yeniden düşünün - bu NoSQL DB'yi rakiplerinden daha üretken olduğu için kullanıyoruz. RethinkDB'de, ReQL adı verilen sorgu dili çeviricisi sunucu düzeyinde uygulanmaz, ancak istemci uygulamasının yazıldığı dile etki alanına özgü bir dil olarak yerleşiktir.

    Veritabanı tabloları, her düzeyde iç içe yerleştirmeye izin veren JSON belgelerini depolar. Her belgenin üst tablosu için benzersiz bir birincil anahtar "kimliği" vardır. Anahtara atıfta bulunarak bir belge alıyoruz. Her ReQL sorgu fonksiyonu, zincirdeki bir önceki fonksiyondan elde edilen veriler üzerinde çalışır. Bu, yüksek yüklü projeler için daha esnek bir mimari oluşturmanıza ve veri yapılarının karmaşıklığını düşünmenize olanak tanır.

    NoSQL DBMS'nin rakibi MongoDB'dir. Bu platform piyasada popülerdir ancak popülerlik her zaman başarının anahtarı değildir. MongoDB'nin bir takım sorunları vardır: belgeleri silmek disk alanını temizlemez, bu nedenle uygulamanın, belgelerin (nesne dosyalarının) sık sık silinmeyeceği şekilde oluşturulması gerekir. MongoDB ayrıca belgeler üzerinde çok sayıda toplu işlemle de iyi çalışmaz; bu, yüksek yüklü bir sistem oluşturma kurallarına aykırıdır.

    Yüksek yüklü projeler oluştururken temel sorun, bir mimari oluşturmak ve daha sonra sistemin iş mantığını buna göre ayarlamaktır. Böyle bir proje her zaman ağır yüklerle baş edemez. Bu nedenle tam tersini yapıyoruz: Tüm sistemin iş mantığını çözüyoruz ve ardından bunun için etkili bir mimari oluşturuyoruz. Böyle bir uygulamaya yeni işlevler eklenebilir. Performansını kaybetmez ve yüksek yüklerden korkmaz.


    Messenger arayüzü geliştirme

    Kullanıcıya nasıl çalışılacağı açık olmalı ve çalışması uygun olmalıdır. Bu nedenle, kullanışlı ve öngörülebilir olduğundan sıklıkla yerel tasarımı kullanmanızı öneririz. Uygulama farklı cihazlarda aynı şekilde davranır. Kullanıcı tanıdık unsurları görür, bunları nasıl kullanacağını bilir ve messenger'ın nasıl kullanılacağına dair hiçbir sorusu yoktur.

    Bir tasarım geliştirirken aşağıdakiler önemlidir:

      Henüz hiçbir şeyin gerçekleşmediği sohbetlerin, ekranların, bölümlerin boş halleri üzerinde çalışın. Bu, kullanıcıya hangi eylemin yapılması gerektiğini açıkça belirtecektir.

      Süreç geri bildirimi. Mesaj göndermek ve dosyaları indirmek zaman alır. Bu noktada kullanıcıya işlemin devam ettiğini göstermek önemlidir.

      Tüm olası hatalar, örneğin İnternet kaybolursa, kullanıcının bir şeylerin ters gittiğini anlaması gerekir.

      Bir telefon numarasını doğrulamak için, doğrulama kodu içeren bir SMS'in yeniden gönderilmesine ilişkin bir süre sınırı belirleyin; çünkü mesaj henüz ulaşmayabilir ve kullanıcının, kodu altı kez yeniden göndermek için tıklaması için zamanı olacaktır.

      Büyük bir dosya gönderirken kullanıcıyı mobil İnternet kullandığı konusunda uyarın.




    Sohbet içi kolaylık ve saçma hataların önlenmesi

    Aramaları belirli bir sohbet içinde uygun şekilde düzenlemek önemlidir. Beslemede rastgele gezinmeye gerek kalmadan yazışmalarda, bir belgede, fotoğrafta veya videoda doğru anı hızla bulun.

    Sesli mesaj göndermeden önce kullanıcının bunları dinleyebilmesi önemlidir. Ayrıca hatayı düzeltme veya istenmeyen mesajı kaldırma seçeneği de bulunmalıdır. Bir iPhone veya Android mesajlaşma uygulaması oluşturmak, bunların ve diğer nüansların dikkatle değerlendirilmesini gerektirir.

    Mahremiyet

    İnternette, messenger'ı hacklemenize ve kişisel yazışmalar almanıza olanak tanıyan programlar bulabilirsiniz. Geliştiricilerin ilk görevi, bir telefon numarasına atıfta bulunmadan ve bir kişiyi bir şekilde tanıma yeteneği olmadan bile tam bir anonimlik sağlamaktır. İkinci görev ise hacklenme riskini ortadan kaldırmaktır.

    Burada nüanslar var. Örneğin, tam bir anonim sohbet için, muhatapların belirli özelliklere (telefon numarası, isim, konum) atıfta bulunmadan kimin kim olduğunu anlamaları gerekir. Bunu yapmak için herkesin kullanabileceği, ancak iki kez tekrarlanmayacak tek seferlik bir şifre kullanmanız gerekir. İnsanları böyle bir sohbete davet etmek de yalnızca bir kez çalışan ve yalnızca kişinin kendisi tarafından ayarlanan bir "anahtar" kullanılarak gerçekleşir.

    Ekran görüntüsü koruması. Gelen bildirimlerin şifrelenmesi. Gereksiz onaylara gerek kalmadan mesajları hızlı bir şekilde silme yeteneği.


    Kendi messenger'ınızı yaratmanın maliyeti nedir?

    Messenger geliştirmenin fiyatı, uygulama üzerindeki çalışmanın ne kadar süreceği ile ilişkilidir. İşlevsellik ne kadar karmaşıksa geliştirme maliyeti de o kadar yüksek olur. İOS, Android veya bir web sitesi için bir mesajlaşma aracı geliştirmenin nihai fiyatını ancak hangi sorunların çözülmesi gerektiğini anladıktan sonra belirleyebiliriz.

    Promosyon ve destek maliyeti

    Android veya iOS için bir mesajlaşma aracı geliştirmek ilk aşamadır. Bu kurumsal bir sohbet değilse, mesajlaşma programının tanıtılması gerekir. Bunu yapmak için pazarlama bütçenize belirli bir miktar eklemeniz gerekir. Bu içerir:

      ASO tanıtımı (App Store Optimizasyonu), bir mobil uygulamayı optimize etmek için yapılan çalışmalar bütünüdür. Yani, uygulamanızın aramada görünürlüğünü en üst düzeye çıkarmak için başlığın (ad), anahtar kelimelerin (anahtar kelimeler), açıklamaların (açıklama) doğru bileşimi

      Google Play ve App Store mağazalarına yerleştirme için ödeme.

    Başlatıldıktan sonra uygulamanın geliştirilmesi ve güncellenmesi gerekir:

      Hataları ortadan kaldırın ve kullanıcı şikayetlerine yanıt verin

      Yeni özellikler ekleyin.

    Android veya iPhone'da mesaj göndermek için uygulama oluşturmaya nereden başlanır?

    Özel bir mesajlaşma programının geliştirilmesi, görevin belirlenmesiyle başlar.

    Bize yazın veya arayın, bir toplantı ayarlayacağız, sorunu tartışacağız ve Android ve iOS için popüler bir mesajlaşma programının nasıl oluşturulacağı konusunda en uygun çözümü bulmanıza yardımcı olacağız.