Ogłoszenie

Collapse
No announcement yet.

Pogramowanie - co polecacie pod Windows i Androida?

Collapse
X
 
  • Filtr
  • Czas
  • Pokaż
Clear All
new posts

    Pogramowanie - co polecacie pod Windows i Androida?

    Jako, że z PWr mam dostęp do Visual Studio 2012 (nawet za darmo i legalnie :-P ) zacząłem trochę z niego korzystać do własnych celów. Piszę sobie kolejną apkę w WinForms, w C++ (bo najbardziej go znam ze wszystkich języków). Są to proste gry (graficzne) typu planszówki/karcianki RPG. Gdzieś mi się "obiło o uszy", że WinForms to lipa i że lepiej zacząć zaznajamiać się z WPF i C#.

    Wszystko fajnie, ale przeraża mnie ten brak wskaźników w C#. Niby są "ulepszone wskaźniki" - referencje, ale one mają jedną wadę - referencja tak jak zmienna posiada swoją unikalną nazwę. Jak tam wygląda dynamiczne tworzenie obiektów? Dla zilustrowania mam klasę Gracz{...} i zmienną globalną unsigned int czyja_tura (która przyjmuje podczas rozgrywki wartości od 0 do (liczba_graczy-1) - zależnie czyja kolej. W C++ tworzę sobie tablicę liczba_graczy-elementową, w każdym polu tablicy jest obiekt typu Gracz i można robić akcje typu tablica_graczy[czyja_tura].wygrana(); Jakoś ciężko mi sobie wyobrazić inicjalizację n-elementowej tablicy n-tą liczbą zmiennych, przecież każda musi mieć unikalną nazwę...

    Ale to tylko takie sobie gdybanie Bo ogólnie: jakie macie doświadczenia z aplikacjami pod Windows? Wiem, że mimo iż to forum diyaudio - programistów nieciężko tu znaleźć Sprawa ma się podobnie z androidem - dla funu chciałbym przekonwertować sobie aplikacje i zrobić jakieś multi do tego, oczywiście chodzi o zdobywanie jakże przydatnego doświadczenia. Co byście polecili?

    Jak ktoś to przeczytał - dzięki

    #2
    Visual Studio jest darmowe dla wszystkich w wersji Express która jest w pełni funkcjonalna. Android SDK wspiera C++.

    Skomentuj


      #3
      Poświęć trochę czasu na C#. Pracuje jako programista, mam na co dzień styczność z Java, C# i Delphi. Jeśli chodzi o sam język to ze względu na jego nowoczesność i wygodę pisania C# jest najprzyjemniejszy - do tego mnogość bibliotek (ale tutaj Java też ma się czym pochwalić). Gorzej z otoczką w jakim dany język się wykorzystuje. Ja programuje akurat w C# przy ASP.NET, a wcześniej trochę w Silverlight (czyli bardziej jak WPF). Co do twojego pytania to najwygodniej zrobić sobie listę (typu generycznego). Czyli List<KlasaGracz> lista = new List<KlasaGracz>();
      lista.add(new KlasaGracz()); A później Lista[0].wygrana();

      Ogólnie sam język jest bardzo przyjemny. Problemy czasem pojawiają się z wydajnością aplikacji WPF. Sama bilbioteka .NET niestety jest obarczona pamięciożernością, a na dodatek Garbage Collector nie zawsze działa tak jakbyśmy sobie tego życzyli. Np niewłaściwe przypinanie zdarzeń do obiektów powoduje memory lacks.

      Pisałem pracę magisterską na Windows Phone 7.5 i pisało się całkiem przyjemnie. Wykorzystałem wtedy też od razu wzorzec MVVW, który przy programowaniu w oparciu o XAML (WPF, Silverlight, Windows Phone, Metro) jest bardzo często wykorzystywany. Niestety trzeba poświęcić trochę czasu, żeby nauczyć się podejścia do pisania w tej konwencji.

      Ogólnie ja wolę używać VCL i Delphi do tworzenia aplikacji okienkowych na Winde :)
      Jeśli chodzi o telefony to najprzyjemniej pisze się na iOS, a później na Windows Phone. Android najgorzej według mnie ze względu na fragmentacje systemu.

      Skomentuj


        #4
        Zamieszczone przez mobias Zobacz posta
        Android SDK wspiera C++
        Android SDK nie wspiera C++, jest to tylko czysta Java.

        Za to dostępny Android NDK pozwala na natywne pisanie aplikacji w C/C++ :)

        Piszę natywnie na praktycznie wszystkie platformy (Windows, Linux, Mac OS X, iOS czy Android) i jeśli masz jakieś pytanie to może będę w stanie odpowiedzieć.

        Zamieszczone przez nonameplum Zobacz posta
        Jeśli chodzi o telefony to najprzyjemniej pisze się na iOS, a później na Windows Phone. Android najgorzej według mnie ze względu na fragmentacje systemu.
        I nie tylko to - do tej pory spotkałem się z kilkoma różnymi implementacjami funkcji OpenGL ES przez karty graficzne na urządzeniach mobilnych i czasem jest tak, że jedna funkcja nie działa z jednym GPU a z drugim i resztą nie ma problemu.

        Skomentuj


          #5
          Dzięki Panowie, stwierdziłem, że przerobię sobie aplikację nad którą właśnie pracuję z c++ -> c# póki nie jest na wysokim poziomie rozbudowania. Jednak tworząc okno wyboru rozdzielczości zauważyłem, że nie jest wcale tak dobrze. Do moich celów przydałoby się coś umożliwiającego fullscreena (paski tytułu, pasek windows i obramowanie swoje zajmują, więc obszaru zostaje mniej, i co gorsza nie jest za dobrze przeliczalny względem wielkości całego okna... poza tym w większości korzystam z pictureboxów, mniej z buttonow i innych konkretnie okienkowych form. Ale jak rozumiem to już inna bajka?

          Skomentuj

          Czaruję...
          X